我有一个具有以下功能的类(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

因为它看起来是正确执行此操作的最优雅的方式。

谢谢你们

10-06 05:17
查看更多