Guzzle MockPlugin不响应内容正文

时间:2013-10-15 13:04:27

标签: php xml mocking guzzle

在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..." :( 但是我可以把东西放在标题中,所以我确定插件工作正常,至少在某种程度上。

1 个答案:

答案 0 :(得分:0)

问题是我没有正确发送或阅读。

根据this,我需要将内容读作$response->getBody(true),以便将其作为字符串阅读。

有些人可能已经注意到post函数中的$content->asXML()。所以我实际上需要$response->xml(),并记得将->asXML()放在发送的内容上。现在它有效!