Rspec - stubbing same class multiple times with different co

Im having a hard time with a rspec controller test im writting, I need
to stub! the User.find call twice once to return the owning user and
once to return the viewing user. however when I attempt

User.stub!(:find).with(1).and_return(@user)
User.stub!(:find).with(2).and_return(@user2)

the second call returns
undefined local variable or method `find’ for #Class:0x7faf42964d00

I’ve managed to replicate the behavior outside of this specific test and
I know the code works as I can test it manually.

Any ideas as to why this is not working? or better still how to get it
working.

Thanks for the help in advance

Have you tried using should_receive instead of stub! ?

Sent from my iPhone

On Tue, Jul 22, 2008 at 9:37 PM, Ry An [email protected] wrote:

I’ve managed to replicate the behavior outside of this specific test and
I know the code works as I can test it manually.

Any ideas as to why this is not working?

Not without more context. What you seem to be trying to do should work.

Would please post the code of the spec (including any before blocks)
and the code for the action in question?

Thanks,
David

2008-07-23 04:37, Ry An:

User.stub!(:find).with(1).and_return(@user)
User.stub!(:find).with(2).and_return(@user2)

the second call returns
undefined local variable or method `find’ for
#Class:0x7faf42964d00

This is a kludge, but you might be able to work around your situation
using

User.stub!(:find).and_return { … calculate retval … }

or

User.stub!(:find).and_return(@user, @user2)

see http://rspec.info/documentation/mocks/stubs.html

Any ideas as to why this is not working? or better still how to get
it working.

Uhh, no idea, sorry.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs