Я пишу функциональные тесты с помощью 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()
(или даже какой-либо другой функции) для отправки запроса на сервер?