ruby-on-rails – 来自黄瓜的HTTP POST XML内容
发布时间:2020-12-16 19:02:17 所属栏目:百科 来源:网络整理
导读:我试图通过POST将 XML内容发送到一个简单的Rails项目中的控制器(‘Parse’)方法(‘index’).它不是RESTful,因为我的模型名称不同,比如说“汽车”.我在功能测试中有以下工作: def test_index ... data_file_path = File.dirname(__FILE__) + '/../../app/vie
我试图通过POST将
XML内容发送到一个简单的Rails项目中的控制器(‘Parse’)方法(‘index’).它不是RESTful,因为我的模型名称不同,比如说“汽车”.我在功能测试中有以下工作:
def test_index ... data_file_path = File.dirname(__FILE__) + '/../../app/views/layouts/index.xml.erb' message = ERB.new( File.read( data_file_path ) ) xml_result = message.result( binding ) doc = REXML::Document.new xml_result @request.env['RAW_POST_DATA'] = xml_result post :index assert_response :success end 我现在正在尝试黄瓜(0.4.3),并且想知道如何在“When”子句中模拟POST请求.我只有一个控制器方法’index’,我在config / routes.rb中有以下内容: ActionController::Routing::Routes.draw do |map| map.connect ':controller/:action/:id' map.connect ':controller/:action/:id.:format' end >黄瓜内的webrat只适用于HTML,不能做POST?
感谢有关如何使用Cucumber进行与HTTP内容的HTTP POST集成测试的任何建议. 解决方法
Webrat在这里不会帮助你,它是基于浏览器的交互,所以如果你正在推测一个API它将无济于事.
您可以在Cucumber中使用“post”,但您需要提供操作的完整路径,而不仅仅是操作.此外,传入Content-type标头,以便Rails知道您正在传递XML. post("/controller/index",xml_result,{"Content-type" => "text/xml"}) 在响应方面,您可以执行以下操作: response.should be_success (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |