Прежде всего, заголовок предполагает, что это дубликат this или this, но по нескольким причинам эти ответы не работают для меня, даже если моя первоначальная проблема такая же. Я объясню почему.
Моя проблема заключается в следующем: у меня есть несколько случаев в моем коде, когда я хочу отправить заголовок и тело, а затем прекратить обработку. В отличие от этих других вопросов, я не могу использовать return
или вместо этого генерировать исключение (это, очевидно, разные функции, предназначенные для других целей, чем exit, и это не ошибка; это просто раннее завершение времени выполнения в некоторых конкретных случаях).
Тем не менее, я хочу написать модульные тесты, запускающие эти методы, убедитесь, что установлены соответствующие заголовки (решение найдено здесь), тело вывода правильное (решено с помощью $this->expectOutputString()
-метода в тестовом примере), а затем продолжить тестирование. Между тем произойдет exit
.
Я пробовал @runInSeparateProcess
-аннотацию в PHPUnit, я также проверил test_helpers, которое работает, но я не хочу добавлять еще одно расширение (имейте в виду, что тесты будут запускаться и в производственной среде) для одной единственной строки собственного кода PHP, которая все ломает. Должен быть более простой способ без ущерба для лучших практик.
У кого-нибудь есть хорошее решение этой проблемы?