Here's the basic deal:

Model.find(1).equal?(Model.find(1))
=> false

AR does not cache objects, so when you ask it for what you *think*
might the same object twice, you get different ones.

I thought as much... So does AR just cache the object's attributes instead and construct them on the fly as and when you ask for them?

mocha offers an 'any_instance' method, which gives you basically what
you are describing with should_receive_instance_method, but rspec does
not yet have a counterpart in its mocking library.

Interesting. I'd love to dive in and write one for RSpec but I think it might be a bit beyond me right now. You can't really mix mocking frameworks in RSpec, right?

I can tell you how I handle this, but let me say that this is a less
than perfect way to handle a less than perfect situation so it's
difficult for me to say "this is a recommended approach." That said
...

@target_comment = stub_model(Target)
@target.stub!(:comments).and_return([EMAIL PROTECTED])

Bugger - I was hoping you wouldn't say that :)

Okay well at least I know what the deal is. Thanks as usual David.

cheers,
Matt
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to