Как выполнить модульный тест класса PCNTL forker в PHP?
У меня есть абстрактный класс PHP, который отвечает за выполнение разветвлений процессов, а также отсоединение текущего процесса от терминала и продолжение работы в deamon.
Я действительно хотел бы получить советы о том, как выполнить модульное тестирование этого класса (PHPUnit). Допустим, реализовать минимальный сокет-сервер в тесте на основе этого реферата и общаться с ним? Есть идеи получше?
Класс можно посмотреть здесь: https://github.com/tcz/PHPTracker/blob/master/lib/PHPTracker/Threading/Forker.php
Спасибо!
2 ответа
Здесь нужно проверить две вещи:
- Если разветвление работает
- Остальная часть кода
Проверка работоспособности разветвления может быть выполнена путем сохранения идентификатора разветвленного процесса и проверки его работоспособности, а остальную часть класса можно протестировать, как обычно, без разветвления.
Как сказал gphilip, вы можете использовать runkit, чтобы смоделировать pcntl_fork() и протестировать все ветви кода. Вот пример: http://kpayne.me/2012/01/17/how-to-unit-test-fork/