我被分配到一个旧项目,目前正在做测试用例。我在某个代码块上有一个错误,该代码块将数据保存到 excel。
但是,该方法输出一个标头,因此 phpunit 说"无法修改标头信息"。
有没有办法告诉phpunit喜欢不要执行该方法?
$codeCoverageIgnore并不能解决问题,因为它只取决于代码覆盖率的数据。我找不到告诉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 开始)
有两种解决方法 - 重构代码,以便标头输出到您可以覆盖的函数中 - 根本不运行,或者使用输出缓冲来捕获标头(和任何其他输出)而不是将它们发送出去。使用缓冲样式有一个优点,因为可以检索和检查输出,然后丢弃(ob_get_clean
或ob_get_contents
&ob_clean
)。