Rspec 2.3 на Rails 3.0.3 дает некоторые проблемы с доступом к контроллеру?
Кажется, что некоторые из моих тестов Rspec теперь не проходят после переноса моего приложения на Rspec 2.3 и Rails 3.0.3
Пример здесь:
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)>'
В моем файле rout.rb я сопоставил ресурсы для этого контроллера...
resources :friendships
То же самое для
get :edit
get :show
put :update
Кажется, работает только один
post :create
Но это я не могу подтвердить на 100%.
Какие-нибудь мысли? Спасибо за ваше время!
ОБНОВИТЬ:
get :new
также работает, и мой контроллер UserSessions (Authlogic), похоже, не страдает от этой проблемы. Ничего из того, что я могу сказать, в моем контроллере, модели или тесте UserSessions.
1 ответ
Решение
В спецификации попробуйте вызвать метод:
delete :destroy, :id => "1"