Rails 3.0.3上的Rspec 2.3给出了一些控制器访问问题?

时间:2010-12-20 00:35:15

标签: bdd ruby-on-rails-3 rspec2

在将我的应用程序移动到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控制器,模型或测试中,我没有做任何不同的事情。

1 个答案:

答案 0 :(得分:2)

在规范中,尝试通过以下方式调用方法:

delete :destroy, :id => "1"