【问题标题】:Testing API call, which calls another URL测试 API 调用,它调用另一个 URL
【发布时间】:2020-08-01 20:48:30
【问题描述】:

我正在为 OAuth 服务编写一些测试。

  1. 我向我的Server#1(我自己的服务器)发送了一个 GET 请求。
  2. Server#1Server#2(不是我自己的)发送请求,以检索访问令牌。

我的问题是我无法为Server#2 创建有效数据,以获得对请求的有效响应。

如何在不模拟 Server#1 的响应的情况下模拟 Server#2 的响应?

【问题讨论】:

  • 向我们提供更多详细信息,例如:输入数据、预期结果、错误/警告。

标签: php laravel phpunit guzzle


【解决方案1】:

您只需要将模拟的类传递给特定的类并期望得到正确的结果。

class Service1{

   public function __constructor(Service2 $service2){
        $this->service2 = $service2;
   }

   public function generateToken(){

     $token = $this->service2->getToken();
     return $token;
   } 
}
$mockedService2 = Mockery::mock(Service2::class);
$mockedService2->shouldReceive('getToken')->andreturn('AccessToken');
$service1 = new Service1($mockedService2);
$service1->generateToken();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-13
    • 2019-02-19
    • 2019-04-18
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 2019-11-08
    相关资源
    最近更新 更多