создание утверждения PHPUnit только после завершения системного процесса

Я пытаюсь проверить результат фонового процесса оболочки (запущенного с помощью exec()). Для этого мне нужно, чтобы утверждение PHPUnit дождалось завершения процесса.

Мне было интересно, как лучше всего это сделать? Должен ли я поместить проверку запущенного процесса в цикл и использовать sleep() с очень маленьким параметром, чтобы дождаться его завершения?


person Victor Stanciu    schedule 03.08.2010    source источник


Ответы (1)


Поскольку никто не ответил в течение дня, я собираюсь сделать снимок:

Первым импульсивным ответом будет: «Вы не должны этого делать». На самом деле это не соответствует целям модульного тестирования (например, это не очень быстро, чтобы запустить этот тест).

Если вы пишете тест для класса, который вызывает этот скрипт, вы на самом деле тестируете не одну вещь, а две. Класс, который вызывает сценарий командной строки, и этот сценарий сам по себе, и вы можете издеваться над частью оболочки.

Если вы просто пытаетесь убедиться, что exec работает, моей первой идеей было бы построить ваш тест таким образом, чтобы этот процесс оболочки не порождался как фоновая задача, а как задача переднего плана и устранял необходимость некоторого «ожидания» обходной путь.

Надеюсь, что немного помог

person edorian    schedule 05.08.2010