开发者

RSpec: Testing rescue_from

开发者 https://www.devze.com 2023-01-30 19:43 出处:网络
How can I test res开发者_Python百科cue_from is RSpec?I\'d like to make sure that if one of the exceptions is raised, that the controller correctly sets the flash and does the redirect.Is there a way t

How can I test res开发者_Python百科cue_from is RSpec? I'd like to make sure that if one of the exceptions is raised, that the controller correctly sets the flash and does the redirect. Is there a way to simulate the exception?

  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


Assuming that you have an authorize! method that raises the exception, you should be able to do something like this:

  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
0

精彩评论

暂无评论...
验证码 换一张
取 消