Как провести тест на единицу класса Forker в PHP?
-
26-10-2019 - |
Вопрос
У меня есть абстрактный класс PHP, который отвечает за выполнение вилок процесса, а также отсоединение текущего процесса от терминала и продолжать в качестве Deamon.
Я действительно хотел бы получить советы о том, как проверить этот класс (Phpunit). Допустим, реализуйте минимальный сервер сокетов в тесте на основе этого абстрактного и общения с этим? Есть лучшие идеи?
Класс можно увидеть здесь: https://github.com/tcz/phptracker/blob/master/lib/phptracker/threading/forker.php
Благодарю вас!
Решение
Здесь нужно проверить две вещи:
- Если разбрызгивание работает
- Остальная часть кода
Тестирование, если вилка сработала, может быть сделано, сохранив идентификатор раздвоенного процесса где -то и посмотрите, будет ли она все еще работает, а остальная часть класса может быть проверена как обычно без подрыта.
Другие советы
Как сказал Gphilip, вы можете использовать Runkit для Mock PCNTL_FORK () и проверить все ветви кода. Вот пример: http://kpayne.me/2012/01/17/how-to-Unit-test-fork/