7

我想为我在 Ruby on Rails 应用程序中工作的 RESTful Web 服务编写功能测试。

测试是一个 POST 请求,其中请求的主体是纯 XML 文档而不是表单。有关如何执行此操作的任何指示?我遇到的问题是如何在对 post 方法的调用中指定正文 XML。

4

5 回答 5

8

以下对我有用:

@request.env['RAW_POST_DATA'] = MY_XML_STRING
post :create   
于 2008-12-04T03:40:27.783 回答
1

您可以通过设置@request.env['RAW_POST_BODY']为所需的输入流来做到这一点。

于 2008-12-03T13:33:41.547 回答
0

我在http://de.softuses.com/6051找到了以下解决方案

message = '<?xml version="1.0" encoding="UTF-8"?>
<tag>content</tag>'

@xml_request_headers ||= {}
@xml_request_headers['HTTP_ACCEPT'] = @xml_request_headers['CONTENT_TYPE'] = 'application/xml'

post '/controller/action.xml', message, @xml_request_headers

我实际上是@xml_request_headers在我的setup方法中定义的,并且可以在这个文件的所有测试中使用它。test_helper.rb如果更多文件需要它,也许将它放在一个好主意。

于 2012-11-13T17:23:26.917 回答
-1

查看shoulda的“should_be_restful”宏。该宏将很快从 shoulda 中弃用,并且仅在 in willa gem 中可用。

于 2008-12-03T12:54:24.530 回答
-1

我刚刚使用 Net:HTTP 编写了一个测试脚本来测试 REST 服务。

于 2008-12-12T13:51:13.477 回答