unit-testingrhino-mocks

Rhino Mocks - Difference between Mock & Stub?


Can any of the Rhino experts explain to me, by giving a suitable example, the difference between Mock and Stub? Where should one use Stub over Mock or otherwise?


Solution

  • you should use a mock when you are going to verify that something happened on the object, like a method was called. You should use a stub when you just want the object to be involved in the test to return a value but it is not the thing you are testing. A stub which does not have a expectation fulfilled can never fail a test.

    I think the general rule should be that you should only ever have a single mock object in a test, but may have several stubs which provide information to the mock object. I believe that more than 1 mock in a test is a code smell.

    Although not a Rhino example Martin Fowler has a description of the difference

    Also this question might be useful as might this one