У меня возникли проблемы с вызовом обратного вызова «progress» во время тестирования.Тестирование Guzzle 6 Скачать Прогресс
Вот код для проверки:
$this->guzzleClient->request(
'GET',
'http://example.com/somefile.csv',
[
'sink' => $this->directory . $this->filename . '.csv',
'progress' => function ($download_size, $downloaded, $upload_size, $uploaded) {
$this->downloadProgress($download_size, $downloaded, $upload_size, $uploaded);
},
]);
Я могу издеваться ответ и сохраняет файл, но он никогда не вызывает «прогресс». Примечание. Параметры ответа, которые я использую, такие же, как те, которые я получаю с сервера.
$mock = new MockHandler([
new Response(
'206',
[
'content-type' => 'application/octet-stream',
'Content-Range' => 'bytes 1113-1113/11591523',
],
new Stream(fopen(__DIR__ . '/test_stream_file.txt', 'r'))
)
]);
$handler = HandlerStack::create($mock);
$client = new Client(['handler' => $handler()]);
Я рассматриваю только тестирование, что макет загрузки файлов, а затем проверить метод downloadProgress
отдельно, если это мой единственный вариант.
В конечном счете, я решил просто протестировать метод 'downloadProgress' отдельно. Мне просто хотелось бы протестировать их вместе, поскольку они запускаются вместе, но когда я тестировал процесс загрузки, было несколько условий, которые мне нужно было проверить, поэтому на самом деле было более разумно тестировать его самостоятельно. – jayEss