【发布时间】:2011-09-05 14:26:12
【问题描述】:
我遇到的问题似乎表明 ActionController::TestCase.get() 方法忽略了我在 routes.rb 中的内容。
Rails 版本是 3.0.10。
我对我的 XmlRpcController#index 操作进行了以下 RSpec2 测试:
it "should get nothing in response to GET request" do
get :index
response.response_code.should == 400 #bad_request
end
并且在 routes.rb 中与这条路线相关的唯一一行是:
post 'rpc', :to => "xml_rpc#index"
'rake routes' 也仅显示已定义的此路由。
因此,当我运行此测试时,该操作实际上确实被执行了!我通过在其中放置一个简单的 puts 来判断这一点)并且还有一个日志包含:
XmlRpcController#index 作为 HTML 处理
另外,如果我在浏览器中转到“localhost:3000/rpc” - 它说没有找到路由:就像它应该的那样。但是测试有其他行为,这让我很困惑......
谁能暗示我为什么会这样?我才刚刚开始学习 RoR :) 早些时候,在我看来,TestCase 的这些“get/post”方法确实尊重 routes.rb...
我是否遗漏了一些明显的东西? :)
【问题讨论】:
标签: ruby-on-rails unit-testing controller