Я тестирую приложение, которое использует Sorcery для аутентификации.У меня есть контроллер сессий, который обрабатывает вход / выход пользователя с помощью тестов для выполнения действий.Я понимаю, что действие уничтожения обычно принимает идентификатор в качестве параметра, но это не нужно с функцией выхода.
rout.rb
resources :sessions
# match "/signout", :to => "sessions#destroy"
session_controller_spec.rb
describe "DELETE 'destroy'" do
it "should log the user out" do
login_user(Factory(:user))
delete :destroy
controller.current_user.should be_nil
controller.should_not be_signed_in
end
end
session_routes_spec.rb
it "should route DELETE /sessions to sessions#destroy" do
{ :delete => "/sessions" }.should route_to(
:controller => "sessions",
:action => "destroy"
)
end
Оба вышеуказанных теста не пройдены, поскольку маршрут ожидает идентификатор.Есть ли способ избавиться от этой необходимости?Я знаю, что мог бы просто использовать названный маршрут "signout_path", но мне просто любопытно, могу ли я все еще использовать session_path,: method =>: delete, не передавая ему идентификатор.
Что действительно шокирует меня, еслиЯ раскомментирую совпадение "/ signout", которое передает спецификация контроллера (однако спецификация маршрута не делает).Как строка соответствия вызывает прохождение спецификации контроллера?