Using Shoulda to test login – should_require_login
I’ve had my problems with shoulda, but one very powerful component of the testing framework is the ability to create macros.
Here’s one that checks to make sure a user has to be logged in to access an action. Put it into test/shoulda_macros/authentication.rb.
(You can name the file anything you want I just thought authentication.rb made sense)
Test::Unit::TestCase.class_eval do
def self.should_require_login(*actions)
actions.each do |action|
should "Require login for '#{action}' action" do
get(action)
assert_redirected_to(login_url)
end
end
end
end
</pre>
Then inside your controller test do something like this:
class UserControllerTest < ActionController::TestCase
should_require_login :edit, :update, :destroy
end
</pre>