无法使用Symfony2功能测试设置Content-Type

use*_*068 5 functional-testing symfony

我正在测试RESTful API,需要测试应用程序是否正确解析传入的数据.传入数据的类型可以是XML或JSON格式.应用程序查看标头中的Content-Type值以确定如何处理数据.

应用程序运行良好,但我无法在Symfony2中为它编写适当的功能测试,因为我似乎无法在调用URL时设置Content-Type.

我正在做这样的事情:

$crawler = $client->request('PUT','/api/record/, array("data" => $xmlData), array(), array("Content-Type" => "text/xml"));
Run Code Online (Sandbox Code Playgroud)

虽然它没有抛出任何错误,但我的应用程序无法接收它.我用Firefox的"Poster"插件以及cUrl成功测试了我的脚本.

任何帮助/想法将不胜感激.

Jep*_*Lam 5

从我在Symfony2测试部分(使用CrawlerClient与应用程序交互)中看到的内容,您可以将其视为'CONTENT_TYPE' => 'application/xml'.所以你应该尝试以下方法:

$crawler = $client->request('PUT','/api/record/', array("data" => $xmlData), array(), array('CONTENT_TYPE' => 'application/xml'));
Run Code Online (Sandbox Code Playgroud)

请注意,我将其更改text/xmlapplication/xml,但两者都应该有效.