[rspec-users] Failure trying to test ApplicationController

David Chelimsky dchelimsky at gmail.com
Tue Oct 16 01:26:13 EDT 2007

On 10/15/07, Steve <vertebrate at gmail.com> wrote:
> I'm trying to write some tests for the ApplicationController as shared
> tests that can be run in all of my other controller tests, but am getting
> a nil.rewrite error. Below is what I have...
> describe AccountController do
>   it_should_behave_like 'Application controller'
> end
> describe 'Application controller', :shared => true do
>   it 'should fail require_login check if not logged in' do
>     User.current = nil
>     controller.require_login.should be_false
>     response.should redirect_to(:controller => 'account', :action => 'logon')

You get responses (i.e. the response object in the spec) from actions
using get, post, put, delete, not by calling methods directly on the

Part of the problem is that you're trying to spec something that
already exists. Developing spec-first, you wouldn't likely end up with
this problem because this method would have appeared because you
refactored it out of an existing action, which was already spec'd.

To be honest, I'm not quite sure how to spec this. One way would be to
set a message expectation for the call to redirect_to:


Anybody else have any ideas?

More information about the rspec-users mailing list