在PHPUnit测试中使用Guzzle MockPlugin。我发现无论我做什么,响应内容体都是空的。
我做错了什么,还是个错误?
测试设置
$client = new Client();
$plugin = new MockPlugin();
$plugin->addResponse(new Response(200, null, "This is never sent..."));
$client->addSubscriber($plugin);
$this->httpClientFactoryMock
->expects($this->any())
->method('getClient')
->will($this->returnValue($client));
正在测试的方法
$client = $this->httpClientFactory->getClient();
$request = $client->post($this->url, null, $content->asXML());
$response = $request->send();
$response->body
在任何地方都没有"This is never sent..."
:(
但是我可以把东西放在标题中,所以我确定插件工作正常,至少在某种程度上。
答案 0 :(得分:0)
问题是我没有正确发送或阅读。
根据this,我需要将内容读作$response->getBody(true)
,以便将其作为字符串阅读。
有些人可能已经注意到post函数中的$content->asXML()
。所以我实际上需要$response->xml()
,并记得将->asXML()
放在发送的内容上。现在它有效!