2016-06-22 3 views
1

У меня возникли проблемы с вызовом обратного вызова «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 отдельно, если это мой единственный вариант.

ответ

1

MockHandler не реализует опцию «прогресс».

Проверка способности обработчиков активировать обратный вызов прогресса будет дублированием набора тестов Guzzle. В частности:

  1. CurlFactoryTest::testEmitsProgress; и
  2. StreamHandlerTest::testEmitsProgressInformation

Если ваша цель состоит в том, чтобы проверить, чтобы убедиться, что обратный вызов выполняет заданные операции, разделите, что в другой тест.

Если ваша цель - проверить возможности обработчика, я отсылаю вас к набору тестов Guzzle.

CurlFactory является обработчиком по умолчанию для систем, отличных от Windows.

StreamHandler является обработчиком по умолчанию для систем Windows.

+0

В конечном счете, я решил просто протестировать метод 'downloadProgress' отдельно. Мне просто хотелось бы протестировать их вместе, поскольку они запускаются вместе, но когда я тестировал процесс загрузки, было несколько условий, которые мне нужно было проверить, поэтому на самом деле было более разумно тестировать его самостоятельно. – jayEss

Смежные вопросы