我是Rspec新手,刚开始是在Rails 3上生成新的控制器。默认情况下,它会生成一些Rspec测试。我有一个关于如何使它们通过的问题。就目前而言,我在终端中看到了该测试”
1)BuildingsController GET“显示”
应该成功
Failure/Error: get 'show'
No route matches {:controller=>"buildings", :action=>"show"}
# ./spec/controllers/buildings_controller_spec.rb:17:in `block (3 levels) in <top (required)>'
但是,我不明白为什么会这样,因为我已经创建了这条路线(“ resources:buildings”),并且我运行了
rake routes
并确保它在那里。建筑GET /buildings/:id(.:format){:action =>“ show”,:controller =>“ buildings”}
通过此考试需要什么?顺便说一下,这是测试:
describe "GET 'show'" do
it "should be successful" do
get 'show'
response.should be_success
end
end
最佳答案
您需要传递现有建筑物的ID:get :show, :id => @building.id
路由抱怨它,因为:id
不是可选的。