テスト中に 'progress'コールバックをトリガーするのに問題があります。Testing 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