我正在用 Symfony2 编写功能测试。
我有一个控制器,它调用一个getImage()
流式传输图像文件的函数,如下所示:
public function getImage($filePath)
$response = new StreamedResponse();
$response->headers->set('Content-Type', 'image/png');
$response->setCallback(function () use ($filePath) {
$bytes = @readfile(filePath);
if ($bytes === false || $bytes <= 0)
throw new NotFoundHttpException();
});
return $response;
}
在功能测试中,我尝试使用Symfony 测试客户端请求内容,如下所示:
$client = static::createClient();
$client->request('GET', $url);
$content = $client->getResponse()->getContent();
问题是它$content
是空的,我猜是因为响应是在客户端收到 HTTP 标头后立即生成的,而无需等待数据流被传递。
有没有办法在仍然使用$client->request()
(甚至某些其他功能)将请求发送到服务器的同时捕获流响应的内容?