Как выполнить модульный тест класса PCNTL forker в PHP?

У меня есть абстрактный класс PHP, который отвечает за выполнение разветвлений процессов, а также отсоединение текущего процесса от терминала и продолжение работы в deamon.

Я действительно хотел бы получить советы о том, как выполнить модульное тестирование этого класса (PHPUnit). Допустим, реализовать минимальный сокет-сервер в тесте на основе этого реферата и общаться с ним? Есть идеи получше?

Класс можно посмотреть здесь: https://github.com/tcz/PHPTracker/blob/master/lib/PHPTracker/Threading/Forker.php

Спасибо!

2 ответа

Решение

Здесь нужно проверить две вещи:

  1. Если разветвление работает
  2. Остальная часть кода

Проверка работоспособности разветвления может быть выполнена путем сохранения идентификатора разветвленного процесса и проверки его работоспособности, а остальную часть класса можно протестировать, как обычно, без разветвления.

Как сказал gphilip, вы можете использовать runkit, чтобы смоделировать pcntl_fork() и протестировать все ветви кода. Вот пример: http://kpayne.me/2012/01/17/how-to-unit-test-fork/

Другие вопросы по тегам