Skip to content
Pull request Compare This branch is 29 commits ahead, 1089 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
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 (response.code.should eq(200))
  • standard test/unit assertions (assert_equal 200, response.code)
  • rails assertions (assert_response 200)
  • rails-specific matchers:
    • response.should render_template (wraps assert_template)
    • response.should redirect_to (wraps assert_redirected_to)
    • assigns(:widget).should be_a_new(Widget)

Examples

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

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

Views

Something went wrong with that request. Please try again.