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

时间:2012-06-07 16:01:04

标签: symfony functional-testing

我正在测试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"));

虽然它没有丢失任何错误,但我的应用程序无法接收它。我使用Firefox的“Poster”插件以及cUrl成功测试了我的脚本。

非常感谢任何帮助/想法。

1 个答案:

答案 0 :(得分:5)

我可以在Symfony2 testing section(使用CrawlerClient与应用程序进行交互)中看到,您可以将其设为'CONTENT_TYPE' => 'application/xml'。所以你应该尝试以下方法:

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

请注意,我已将其从text/xml更改为application/xml,但两者都应有效。

相关问题