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
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
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
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
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
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
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
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
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
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
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
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
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
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.
Generated with the Darkfish Rdoc Generator 1.1.6.