dongpaipu8394 2018-02-27 16:05
浏览 253
已采纳

来自Guzzle的PHPUnit和模拟请求

I have a class with the following function :

public function get(string $uri) : stdClass
{
    $this->client = new Client;
    $response = $this->client->request(
        'GET',
        $uri,
        $this->headers
    );

    return json_decode($response->getBody());
}

How can I mock the request method from PHPUnit? I tried different ways but it always tries to connect to the uri specified.

I tried with :

    $clientMock = $this->getMockBuilder('GuzzleHttp\Client')
        ->setMethods('request')
        ->getMock();

    $clientMock->expects($this->once())
        ->method('request')
        ->willReturn('{}');

But this didn't work. What can I do? I just need to mock the response to be empty.

Thanks

PD : Client comes from (use GuzzleHttp\Client)

  • 写回答

2条回答 默认 最新

  • duan032225 2018-02-27 17:11
    关注

    I think as suggested is better to use http://docs.guzzlephp.org/en/stable/testing.html#mock-handler

    as it looks like the most elegant way to do it properly.

    Thank you all

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解