在将我的应用程序移动到Rspec 2.3和Rails 3.0.3后,似乎我的一些Rspec测试失败了
这里有一个例子:
it "should not be able to access 'destroy'" do
delete :destroy
response.should redirect_to(signin_path)
flash[:error].should == "You must be signed in to view this page."
end
会给我错误:
1) FriendshipsController when not logged in: should not be able to access 'destroy'
Failure/Error: delete :destroy
No route matches {:controller=>"friendships", :action=>"destroy"}
# ./spec/controllers/friendships_controller_spec.rb:21:in `block (3 levels) in <top (required)>'
在我的routes.rb文件中,我已经为这个控制器映射了资源......
resources :friendships
相同
get :edit
get :show
put :update
只有一个似乎有效的
post :create
但是我无法确认100%。
有什么想法?谢谢你的时间!
更新:
get :new
也可以,我的UserSessions控制器(Authlogic)似乎没有遇到这个问题。在我的UserSessions控制器,模型或测试中,我没有做任何不同的事情。
答案 0 :(得分:2)
在规范中,尝试通过以下方式调用方法:
delete :destroy, :id => "1"