我有一个具有以下功能的类(class):
public function get(string $uri) : stdClass
{
$this->client = new Client;
$response = $this->client->request(
'GET',
$uri,
$this->headers
);
return json_decode($response->getBody());
}
如何从PHPUnit模拟请求方法?我尝试了不同的方法,但它始终尝试连接到指定的uri。
我尝试了:
$clientMock = $this->getMockBuilder('GuzzleHttp\Client')
->setMethods('request')
->getMock();
$clientMock->expects($this->once())
->method('request')
->willReturn('{}');
但这是行不通的。我能做什么?我只需要模拟响应为空即可。
谢谢
PD:客户端来自(使用GuzzleHttp\Client)
最佳答案
我认为按照建议最好使用http://docs.guzzlephp.org/en/stable/testing.html#mock-handler
因为它看起来是正确执行此操作的最优雅的方式。
谢谢你们