Как выполнить модульный тест класса PCNTL forker в PHP? - PullRequest
1 голос
/ 17 марта 2011

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

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

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

Спасибо!

Ответы [ 2 ]

1 голос
/ 19 января 2012

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

0 голосов
/ 25 марта 2011

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

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

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

...