[mocha-developer] If I stub do I have to mock as well?

Tim Case gk at karmacrash.com
Fri Oct 13 10:54:30 EDT 2006


Hi, I'm new to mocha and stubba but eager to learn.  I have a rails 
functional test in which I would like to stub an instance method of 
particular class to always return true.  I tried the following:

def test_post_checkout
    Order.any_instance.stubs(:successful?).returns(true)
    post :checkout
    assert_response :redirect
    assert_equal "Checkout was successful.", flash[:notice]
end

I expected that the stub would help my test pass but instead it failed 
and the failure included the following:

     test/functional/store_controller_test.rb:103:in `test_post_checkout']:
#<Mocha::Mock: 28754118>.successful?() - expected calls: 0, actual calls: 1

I was confused by this and it seemed to indicate that I need to tell 
Order that a call to #successful? was expected.  Do I have to create a 
mock in order to stub?  How do I do this?

Thanks,

Tim Case
tim at karmacrash.com




More information about the mocha-developer mailing list