我看过this question,但这并不是我所追求的。
我在带XML的Lumen应用程序中有一个API端点。在控制器内,我正在这样做:$request->getContent();
。
我正在尝试编写一个将XML发布到路由并检索响应的单元测试。我尝试了此$response = $this->call('POST', '/api', $xml);
,但是第三个参数必须是数组,而不是字符串。
如何在单元测试中将XML字符串发布到端点?
答案 0 :(得分:6)
/**
* Call the given URI and return the Response.
*
* @param string $method
* @param string $uri
* @param array $parameters
* @param array $cookies
* @param array $files
* @param array $server
* @param string|null $content
* @return \Illuminate\Foundation\Testing\TestResponse
*/
public function call($method, $uri, $parameters = [], $cookies = [], $files = [], $server = [], $content = null)
因此,您可以将xml
作为最后一个参数传递:
$this->call('POST', '/api', [], [], [], [], $xml);
答案 1 :(得分:0)
您可以尝试按照here on stackoverflow所述将xml字符串转换为数组,或者,如果您只想通过调用MaterialDrawer
返回整个xml,则可以将xml字符串用作数组,例如$request->getContent()