Ruby on Rails中RESTful POST的function测试
我想编写一个RESTful Web服务的function测试,我正在使用Ruby on Rails应用程序。
测试是POST请求,其中请求的主体是纯XML文档而不是表单。 有关如何做到这一点的任何指示? 我遇到的问题是如何在post方法的调用中指定body XML。
以下对我有用:
@request.env['RAW_POST_DATA'] = MY_XML_STRING post :create
您可以通过将@request.env['RAW_POST_BODY']
设置为所需的输入流来实现。
我在http://de.softuses.com/6051找到了以下解决方案
message = ' content ' @xml_request_headers ||= {} @xml_request_headers['HTTP_ACCEPT'] = @xml_request_headers['CONTENT_TYPE'] = 'application/xml' post '/controller/action.xml', message, @xml_request_headers
我实际上在我的setup
方法中定义了@xml_request_headers
,并且可以在我的所有测试中使用它。 如果更多文件需要它,将它放到test_helper.rb
也许是个好主意。
查看shoulda的“should_be_restful”宏。 这个宏很快就会从shoulda中弃用 ,只能在willa gem中使用。
我刚刚使用Net:HTTP编写了一个测试脚本来测试REST服务。