【发布时间】:2011-04-19 22:35:32
【问题描述】:
我正在尝试通过 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
我现在正在尝试 cucumber (0.4.3),并且想知道如何在“When”子句中模拟 POST 请求。我只有一个控制器方法“索引”,并且在 config/routes.rb 中有以下内容:
ActionController::Routing::Routes.draw do |map|
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end
- cucumber 中的webrat 只能用于HTML,不能做POST?
- @request 变量在 cucumber 环境中不可用?
- 如果我在 features/step_definitions/car_steps.rb 中使用“访问索引”(假设它是 Parse 控制器,索引方法)之类的内容,则会收到以下错误:
# (NoMethodError) 的未定义方法 `index'
感谢任何有关如何使用 Cucumber 为带有 XML 内容的 HTTP POST 进行集成测试的建议。
【问题讨论】:
-
@mbuf,如果其中一个答案解决了您的问题,您应该通过单击投票区域下方的复选标记将其标记为“已回答”。
-
完成。谢谢你告诉我!
-
我在这里发布了如何使用 Rails 和 cucumber 测试 JSON POST:stackoverflow.com/questions/5098626/…
标签: ruby-on-rails ruby cucumber