我需要测试我的课程,并且该课程会发出一个Curl请求。
我想检查传递给curl请求的数据,所以这是代码:
class SendCurl {
/** @var GuzzleHttp\Client */
protected $client;
public function __construct(\GuzzleHttp\Client $client) {
$this->client = $client;
}
public function send() {
$this->curl();
}
protected function curl() {
$this->client->get(
$this->statHatUrl, [
'headers' => ['Content-Type' => 'application/json'],
'body' => $this->getValidJson(),
]
);
}
}
现在你可以在这里看到,我这样称呼这个类:
$api = new SendCurl($client);
$api->send();
现在我想检查发送到curl get请求的数据 所以我到现在所做的就是使用嘲弄
$client = Mockery::mock('GuzzleHttp\Client');
$client->shouldReceive('get')
->once()
->with(Mockery::type('string'), Mockery::type('array'));
$obj = new SendCurl($client);
$obj->send();
所以我成功检查了" get"的第一个参数。客户端的方法是一个字符串, 并且第二个参数是一个数组。
但我如何将它们与精确值进行比较。
类似的东西:
->with(Mockery::type('string') && equalsTo('www.WhatEver.com'))
不介意语法,只考虑这个想法。
答案 0 :(得分:2)
将期望值传递给with()
方法:
$client = Mockery::mock('GuzzleHttp\Client');
$client->shouldReceive('get')
->once()
->with('www.WhatEver.com', array(1, 2);