我正在测试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成功测试了我的脚本。
非常感谢任何帮助/想法。
答案 0 :(得分:5)
我可以在Symfony2 testing section(使用Crawler
和Client
与应用程序进行交互)中看到,您可以将其设为'CONTENT_TYPE' => 'application/xml'
。所以你应该尝试以下方法:
$crawler = $client->request('PUT','/api/record/', array("data" => $xmlData), array(), array('CONTENT_TYPE' => 'application/xml'));
请注意,我已将其从text/xml
更改为application/xml
,但两者都应有效。