2015-12-15 2 views
2

Я пытаюсь отправить поддельные запросы - для модульного тестирования - после того, как был создан мой клиент Guzzle (v6).Нажатие запросов на HandlerStack после того, как был создан клиент Guzzle

Я попытался некоторое время посмотреть в уроках Гуззл, но я не могу найти способ добиться этого. Обратите внимание, что я тестирую PHPUnit, и может получить доступ только к клиенту, отправленному другим тестом, от которого он зависит.

// Create a mock and queue two responses. 
$mock = new MockHandler([ 
    new Response(200, ['X-Foo' => 'Bar']), 
    new Response(202, ['Content-Length' => 0]) 
]); 

$handler = HandlerStack::create($mock); 
$client = new Client(['handler' => $handler]); 

// New requests after the client has been initiated 
$newMock = new MockHandler([ 
    new Response(200, ['X-Foo' => 'Bar']), 
    new Response(202, ['Content-Length' => 0]) 
]); 

// useful? 
$config = $client->getConfig(); 
$handler = $config['handler']; 

// push the new requests in $newMock? 
$handler->something(…); 

ответ

2

Практически там. Для вашей последней строки:

$handler->setHandler($newMock); 
+0

Извините, просто заметили возраст этого вопроса. Пришел к этому, ища ответ на аналогичную проблему о HandlerStack –

+0

Еще полезно! Попробуй, если я вернусь к этому! Благодаря! – sheoak