[mocha-developer] Stubbing objects and calling to_json on them errors (circular reference)
Bill Kocik
bkocik at gmail.com
Mon Oct 20 11:14:17 EDT 2008
My apologies if there's a user list I should be posting this to. I
didn't find one.
Suppose you have a controller action like this:
def do_something
@something = Something.find(:first)
@something.do_whatever
render :json => @something.to_json
end
A test might be this:
context "when do_something is called" do
setup do
@something = Something.new()
Something.expects(:find).returns(@something)
@something.stubs(:do_whatever)
get :do_something
end
should_respond_with :success
end
Because I stubbed a method on my @something object (and this also
happens with expects()), I get this:
1) Error:
test: when do_something is called should respond with success.
(SomethingControllerTest):
ActiveSupport::JSON::CircularReferenceError: object references itself
If I print out the object @something, I see that it contains an @mocha
attribute that references the containing object, which is the cause of
to_json's heartburn and the error. But that @mocha attribute is not
present if I never call stubs() or expects() on the object that's
going to be converted to JSON, and I do not get the error in that
case. Can anyone show me what I'm doing wrong, or is this actually a
known issue?
--
Bill Kocik
More information about the mocha-developer
mailing list