Skip to content
Pull request Compare This branch is 67 commits ahead, 1065 commits behind master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
..
Failed to load latest commit information.
Cookies.md
README.md
anonymous_controller.feature
bypass_rescue.feature
controller_spec.feature
engine_routes.feature
isolation_from_views.feature
render_views.feature

README.md

Controller specs live in spec/controllers or any example group with :type => :controller.

A controller spec is an RSpec wrapper for a Rails functional test (ActionController::TestCase::Behavior). It allows you to simulate a single http request in each example, and then specify expected outcomes such as:

  • rendered templates
  • redirects
  • instance variables assigned in the controller to be shared with the view
  • cookies sent back with the response

To specify outcomes, you can use:

  • standard rspec matchers (expect(response.status).to eq(200))
  • standard test/unit assertions (assert_equal 200, response.status)
  • rails assertions (assert_response 200)
  • rails-specific matchers:
    • expect(response).to render_template(wraps assert_template)
    • expect(response).to redirect_to(wraps assert_redirected_to)
    • expect(assigns(:widget)).to be_a_new(Widget)

Examples

describe TeamsController do
  describe "GET index" do
    it "assigns @teams" do
      team = Team.create
      get :index
      expect(assigns(:teams)).to eq([team])
    end

    it "renders the index template" do
      get :index
      expect(response).to render_template("index")
    end
  end
end

Views

Something went wrong with that request. Please try again.