我正在测试在我的Symfony应用程序中下载文件的路径,除命令行上难看的PDF内容输出外,其他一切都正常。
例如,我要检查某些用户角色是否具有下载PDF文件的访问权限:
$this->client->request('GET', '/media/download/1');
$this->assertTrue($this->client->getResponse()->isSuccessful());
点击测试的这一部分时,PDF的内容会在命令行上打印出来,如下所示:
31/31(100%)%PDF-1.4%äüöß2 0 obj <>流x��TKk�@����s��<�%0�8。 ��1�PzR����K�〜��''j9����������4 _�c(��C���������@ |�c�T�3%��������p�-..
这只是为了说明,实际输出要长得多。
这是一个普遍的问题,其他MIME类型也会发生。
是否有可能抑制输出?
答案 0 :(得分:3)
与在其他情况下此时不需要输出的情况一样,可以使用ob_
函数对其进行缓冲,例如:
// start buffering
ob_start();
$this->client->request('GET', '/media/download/1');
// and as you really don't care about output - just clean it
ob_clean();
// use
// $contents = ob_get_clean();
// if you still need output
$this->assertTrue($this->client->getResponse()->isSuccessful());
更新:避免出现类似错误消息
测试代码或测试代码没有(仅)关闭自己的输出缓冲区
使用ob_end_clean()
代替ob_clean()
。