[rspec-users] multiple return values with stub

Phillip Koebbe phillipkoebbe at gmail.com
Fri Apr 30 13:04:13 EDT 2010

  On 2010-04-30 11:34 AM, Phillip Koebbe wrote:
>  I have a helper method
>     def login_as(role)
>         user = stub_model(User)
>         user.stub(:is_administrator?).and_return(role == :admin)
>         User.stub(:find_by_id).and_return(user)
>         session[:user_id] = user.id
>         user
>     end
> which has been dandy until yesterday. I am now working on an admin 
> controller for user maintenance, and in it, I want to do this:
>         before :each do
>             login_as(:admin)
>             @some_user = stub_model(User, valid_user_hash)
>             User.stub(:find_by_id).and_return(@some_user)
>         end
> which obviously conflicts with the stub in login_as.
> I have experimented with adding .with() to each one, hoping that 
> multiple stubs would be created, but that does not seem to be the 
> case. Is there a way to stub the same method but have it return 
> different values? Or can someone suggest a better way of handling this 
> situation?

To answer my own question, I discovered I could stub @controller in 


which works. Can anyone think of a reason I would not want to do that?


More information about the rspec-users mailing list