RSpec: тестирование rescue_from
Как я могу проверить rescue_from, это RSpec? Я хотел бы убедиться, что если возникает одно из исключений, то контроллер правильно устанавливает флеш-память и выполняет перенаправление. Есть ли способ имитировать исключение?
rescue_from PageAccessDenied do
flash[:alert] = "You do not have the necessary roles to access this page"
redirect_to root_url
end
rescue_from CanCan::AccessDenied do |exception|
flash[:alert] = exception.message
redirect_to root_url
end
Ответы
Ответ 1
Предполагая, что у вас есть метод authorize!
, который вызывает исключение, вы должны сделать что-то вроде этого:
describe "rescue_from exceptions" do
it "rescues from PageAccessDenied" do
controller.stub(:authorize!) { raise PageAccessDenied }
get :index
response.should redirect_to("/")
flash[:alert].should == "You do not have the necessary roles to access this page"
end
end