【问题标题】:Functional testing of a RESTful POST in Ruby on Rails在 Ruby on Rails 中对 RESTful POST 进行功能测试
【发布时间】:2008-12-03 07:59:29
【问题描述】:

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

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

【问题讨论】:

    标签: ruby-on-rails ruby unit-testing rest post


    【解决方案1】:

    以下内容对我有用:

    @request.env['RAW_POST_DATA'] = MY_XML_STRING
    post :create   
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        我在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
        

        我实际上在我的setup 方法中定义了@xml_request_headers,并且可以在这个文件的所有测试中使用它。如果更多文件需要,最好将其发送至test_helper.rb

        【讨论】:

          【解决方案4】:

          查看shoulda 的“should_be_restful”宏。这个宏很快将是来自 shoulda 的 deprecated,并且仅在 woulda gem 中可用。

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              猜你喜欢
              • 2010-10-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-04-14
              • 1970-01-01
              • 1970-01-01
              • 2011-04-05
              • 1970-01-01
              相关资源
              最近更新 更多