Included Modules

Shoulda::ActionController::Macros

Macro test helpers for your controllers

By using the macro helpers you can quickly and easily create concise and easy to read test suites.

This code segment:

  context "on GET to :show for first record" do
    setup do
      get :show, :id => 1
    end

    should_assign_to :user
    should_respond_with :success
    should_render_template :show
    should_not_set_the_flash

    should "do something else really cool" do
      assert_equal 1, assigns(:user).id
    end
  end

Would produce 5 tests for the show action

Public Instance Methods

should_assign_to(*names, &block) click to toggle source

Deprecated: use ActionController::Matchers#assign_to instead.

Macro that creates a test asserting that the controller assigned to each of the named instance variable(s).

Options:

  • :class - The expected class of the instance variable being checked.

If a block is passed, the assigned variable is expected to be equal to the return value of that block.

Example:

  should_assign_to :user, :posts
  should_assign_to :user, :class => User
  should_assign_to(:user) { @user }
    # File lib/shoulda/action_controller/macros.rb, line 80
80:       def should_assign_to(*names, &block)
81:         ::ActiveSupport::Deprecation.warn("use: should assign_to")
82:         klass = get_options!(names, :class)
83:         names.each do |name|
84:           matcher = assign_to(name).with_kind_of(klass)
85:           matcher = matcher.with(&block) if block
86:           should matcher
87:         end
88:       end
should_filter_params(*keys) click to toggle source

Deprecated: use ActionController::Matchers#filter_param instead.

Macro that creates a test asserting that filter_parameter_logging is set for the specified keys

Example:

  should_filter_params :password, :ssn
    # File lib/shoulda/action_controller/macros.rb, line 57
57:       def should_filter_params(*keys)
58:         ::ActiveSupport::Deprecation.warn("use: should filter_param")
59:         keys.each do |key|
60:           should filter_param(key)
61:         end
62:       end
should_not_assign_to(*names) click to toggle source

Deprecated: use ActionController::Matchers#assign_to instead.

Macro that creates a test asserting that the controller did not assign to any of the named instance variable(s).

Example:

  should_not_assign_to :user, :posts
     # File lib/shoulda/action_controller/macros.rb, line 98
 98:       def should_not_assign_to(*names)
 99:         ::ActiveSupport::Deprecation.warn("use: should_not assign_to")
100:         names.each do |name|
101:           should_not assign_to(name)
102:         end
103:       end
should_not_set_the_flash() click to toggle source

Deprecated: use ActionController::Matchers#set_the_flash instead.

Macro that creates a test asserting that the flash is empty.

    # File lib/shoulda/action_controller/macros.rb, line 44
44:       def should_not_set_the_flash
45:         ::ActiveSupport::Deprecation.warn("use: should_not set_the_flash")
46:         should_not set_the_flash
47:       end
should_redirect_to(description, &block) click to toggle source

Deprecated: use ActionController::Matchers#redirect_to instead.

Macro that creates a test asserting that the controller returned a redirect to the given path. The passed description will be used when generating a test name. Expects a block that returns the expected path for the redirect.

Example:

  should_redirect_to("the user's profile") { user_url(@user) }
     # File lib/shoulda/action_controller/macros.rb, line 187
187:       def should_redirect_to(description, &block)
188:         ::ActiveSupport::Deprecation.warn("use: should redirect_to")
189:         should redirect_to(description, &block)
190:       end
should_render_template(template) click to toggle source

Deprecated: use ActionController::Matchers#render_template instead.

Macro that creates a test asserting that the controller rendered the given template. Example:

  should_render_template :new
     # File lib/shoulda/action_controller/macros.rb, line 152
152:       def should_render_template(template)
153:         ::ActiveSupport::Deprecation.warn("use: should render_template")
154:         should render_template(template)
155:       end
should_render_with_layout(expected_layout = 'application') click to toggle source

Deprecated: use ActionController::Matchers#render_with_layout instead.

Macro that creates a test asserting that the controller rendered with the given layout. Example:

  should_render_with_layout 'special'
     # File lib/shoulda/action_controller/macros.rb, line 163
163:       def should_render_with_layout(expected_layout = 'application')
164:         ::ActiveSupport::Deprecation.warn("use: should render_with_layout")
165:         should render_with_layout(expected_layout)
166:       end
should_render_without_layout() click to toggle source

Deprecated: use ActionController::Matchers#render_with_layout instead.

Macro that creates a test asserting that the controller rendered without a layout. Same as @should_render_with_layout false@

     # File lib/shoulda/action_controller/macros.rb, line 172
172:       def should_render_without_layout
173:         ::ActiveSupport::Deprecation.warn("use: should_not render_with_layout")
174:         should_not render_with_layout
175:       end
should_respond_with(response) click to toggle source

Deprecated: use ActionController::Matchers#respond_with instead.

Macro that creates a test asserting that the controller responded with a ‘response’ status code. Example:

  should_respond_with :success
     # File lib/shoulda/action_controller/macros.rb, line 111
111:       def should_respond_with(response)
112:         ::ActiveSupport::Deprecation.warn("use: should respond_with")
113:         should respond_with(response)
114:       end
should_respond_with_content_type(content_type) click to toggle source

Deprecated: use ActionController::Matchers#respond_with_content_type instead.

Macro that creates a test asserting that the response content type was ‘content_type’. Example:

  should_respond_with_content_type 'application/rss+xml'
  should_respond_with_content_type :rss
  should_respond_with_content_type /rss/
     # File lib/shoulda/action_controller/macros.rb, line 124
124:       def should_respond_with_content_type(content_type)
125:         ::ActiveSupport::Deprecation.warn("use: should respond_with_content_type")
126:         should respond_with_content_type(content_type)
127:       end
should_route(method, path, options) click to toggle source

Deprecated: use ActionController::Matchers#route instead.

Macro that creates a routing test. It tries to use the given HTTP method on the given path, and asserts that it routes to the given options.

If you don’t specify a :controller, it will try to guess the controller based on the current test.

to_param is called on the options given.

Examples:

  should_route :get, "/posts", :controller => :posts, :action => :index
  should_route :get, "/posts/new", :action => :new
  should_route :post, "/posts", :action => :create
  should_route :get, "/posts/1", :action => :show, :id => 1
  should_route :edit, "/posts/1", :action => :show, :id => 1
  should_route :put, "/posts/1", :action => :update, :id => 1
  should_route :delete, "/posts/1", :action => :destroy, :id => 1
  should_route :get, "/users/1/posts/1",
    :action => :show, :id => 1, :user_id => 1
     # File lib/shoulda/action_controller/macros.rb, line 215
215:       def should_route(method, path, options)
216:         ::ActiveSupport::Deprecation.warn("use: should route")
217:         should route(method, path).to(options)
218:       end
should_set_session(key, &block) click to toggle source

Deprecated: use ActionController::Matchers#set_session instead.

Macro that creates a test asserting that a value returned from the session is correct. Expects the session key as a parameter, and a block that returns the expected value.

Example:

  should_set_session(:user_id) { @user.id }
  should_set_session(:message) { "Free stuff" }
     # File lib/shoulda/action_controller/macros.rb, line 139
139:       def should_set_session(key, &block)
140:         ::ActiveSupport::Deprecation.warn("use: should set_session")
141:         matcher = set_session(key)
142:         matcher = matcher.to(&block) if block
143:         should matcher
144:       end
should_set_the_flash_to(val) click to toggle source

Deprecated: use ActionController::Matchers#set_the_flash instead.

Macro that creates a test asserting that the flash contains the given value. Expects a String or Regexp.

Example:

  should_set_the_flash_to "Thank you for placing this order."
  should_set_the_flash_to /created/i
    # File lib/shoulda/action_controller/macros.rb, line 36
36:       def should_set_the_flash_to(val)
37:         ::ActiveSupport::Deprecation.warn("use: should set_the_flash")
38:         should set_the_flash.to(val)
39:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.