如何在PHPUnit测试中使用输出缓冲?

时间:2015-03-18 12:55:58

标签: php unit-testing testing phpunit

我使用PHPUnit来测试下载文件的功能。我想测试下载了正确的文件,所以我的想法是检查函数的输出。我试图使用输出缓冲:

ob_start();
$viewer->downloadById($fileId);
$output = ob_get_flush();
$this->assertEquals($expectedFileContents,$output);

测试通过/失败,应该是好的。我的问题是输出缓冲区的内容也打印到控制台。我怎么隐藏这个?

1 个答案:

答案 0 :(得分:4)

使用ob_get_clean()代替ob_get_flush()。前者将删除缓冲区而不打印它并返回其内容。后者将执行相同的并打印缓冲区的内容。