features/controller_specs/README.md in rspec-rails-2.3.1 vs features/controller_specs/README.md in rspec-rails-2.4.0

- old
+ new

@@ -1,25 +1,36 @@ -A controller spec is an RSpec wrapper for a Rails functional test. It allows -you to simulate a single http request in each example, and then specify -expected outcomes, such as: +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, including: + * templates that are rendered by the action -* instance variables that are assigned in the controller to be shared with - the view +* instance variables that are assigned in the controller to be shared with the + view * cookies that get 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) +* 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) + * `response.should render_template (wraps assert_template)` + * `response.should redirect_to (wraps assert_redirected_to)` + * `assigns(:widget).should be_a_new(Widget)` -Conventions: +## Conventions: -* pass the controller being spec'd to the describe method - * this is only necessary for the outermost example group -* by default, views are not rendered. See "isolation from views" and - "render_views" for details +### Controller + +* pass the controller being specified to the outermost `describe` method. + + describe AccountController do + # ... + +### Views + +* by default, views are not rendered. See + [views are stubbed by default](controller-specs/views-are-stubbed-by-default) and + [render_views](controller-specs/render-views) for details.