我正在使用RSpec-2测试我的控制器,我看到了奇怪的行为。实际上,我在做的事情和在铁路#71中做的一样
describe DeliverablesController do
describe "responding to POST create" do
describe "with valid parameters" do
it "should pass the params to the deliverable item" do
post :create, :deliverable => {:title => "Some Deliverable"}
assigns[:deliverable].title.should == "Some Deliverable"
end
end
end
end这将导致以下错误:
1) DeliverablesController responding to POST create with valid parameters should pass the params to the deliverable item
Failure/Error: post :create, :deliverable => {:title => "Some Deliverable"}
ActionController::RoutingError:
No route matches {:deliverable=>{:title=>"Some Deliverable"}, :controller=>"deliverables", :action=>"create"}显然,:deliverable不应该是路由的一部分,而应该写入params。我的问题首先是不确定调用了哪个post方法。
我的Gemfile.lock可以找到这里。
编辑
我的routes.rb可以找到这里。
发布于 2011-05-09 10:30:41
有时候,提出一些想法是很好的:我的问题是,我处于一个嵌套的路径中,基本上做了以下工作。
resources :projects do
resources :deliverables
end这条错误消息把我吓了一跳,真正的问题是我没有提供project_id。我把它修好了
post :create, :project_id => 11, :deliverable => {:title => "Some Deliverable"}而不是
post :create, :deliverable => {:title => "Some Deliverable"}谢谢你,hammar!
https://stackoverflow.com/questions/5930882
复制相似问题