To add a collaborator to this project you will need to use the Relish gem to add the collaborator via a terminal command. Soon you'll be able to also add collaborators here!
More about adding a collaboratorbypass rescue
Use bypass_rescue
to bypass both Rails' default handling of errors in
controller actions, and any custom handling declared with a rescue_from
statement.
This lets you specify details of the exception being raised, regardless of
how it might be handled upstream.
- Background
-
- Given
-
a file named "spec/controllers/gadgets_controller_spec_context.rb" with:
class AccessDenied < StandardError; end class ApplicationController < ActionController::Base rescue_from AccessDenied, :with => :access_denied private def access_denied redirect_to "/401.html" end end
- Scenarios
-
- standard exception handling using `rescue_from`
-
- Given
-
a file named "spec/controllers/gadgets_controller_spec.rb" with:
require "rails_helper" require 'controllers/gadgets_controller_spec_context' RSpec.describe GadgetsController, :type => :controller do before do def controller.index raise AccessDenied end end describe "index" do it "redirects to the /401.html page" do get :index expect(response).to redirect_to("/401.html") end end end
- When
-
I run
rspec spec/controllers/gadgets_controller_spec.rb
- Then
- the examples should all pass
- bypass `rescue_from` handling with `bypass_rescue`
-
- Given
-
a file named "spec/controllers/gadgets_controller_spec.rb" with:
require "rails_helper" require 'controllers/gadgets_controller_spec_context' RSpec.describe GadgetsController, :type => :controller do before do def controller.index raise AccessDenied end end describe "index" do it "raises AccessDenied" do bypass_rescue expect { get :index }.to raise_error(AccessDenied) end end end
- When
-
I run
rspec spec/controllers/gadgets_controller_spec.rb
- Then
- the examples should all pass
Last published 9 months ago by Jon Rowe.