在创建我的 Guzzle 客户端 (v6) 后,我尝试发送虚假请求(用于单元测试)。
我尝试在 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(…);
最佳答案
快到了。对于你的最后一行:
$handler->setHandler($newMock);
关于mocking - 创建 Guzzle 客户端后将请求推送到 HandlerStack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34291709/