Можете ли вы «пропустить» блок кода в phpunit?

Я был назначен на старый проект и в настоящее время делаю контрольные примеры. У меня есть ошибка в определенном блоке кода, который сохраняет данные в Excel.

Однако метод выводит заголовок, и, таким образом, phpunit говорит: «Невозможно изменить информацию заголовка».

Есть ли способ сказать phpunit как не выполнять этот метод?

$ codeCoverageIgnore не решает проблему, поскольку это зависит только от данных codecoverage. Я не могу найти что-то, что говорит phpunit, «не выполняйте это».

    header('Content-Type: application/vnd.ms-excel;charset=utf-8');
header('Content-type: application/x-msexcel;charset=utf-8');
header('Content-Disposition: attachment;filename="' . $this->sFileName . '"');
header('Cache-Control: max-age=0');

И вот ошибка, которую я получаю от phpunit

Невозможно изменить информацию заголовка — заголовки уже отправлены (вывод начался с D: \ xampp7 \ php \ pear \ PHPUnit \ Util \ Printer.php: 172)

1

Решение

Это может быть сделано двумя способами: рефакторинг кода, чтобы заголовки выводились в функции, которую вы можете переопределить, чтобы вообще не запускаться, ИЛИ не использовать выходная буферизация захватывать заголовки (и любые другие выходные данные) вместо их отправки. Преимущество использования стиля буферизации заключается в том, что выходные данные могут быть извлечены и проверены, а затем отброшены (ob_get_clean или же ob_get_contents & ob_clean).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]