views:

390

answers:

2

Can any of the Rhino experts explain me by giving a suitable example of the differnce between the above methods on the MockRepository class (Rhino Mocks framework).Where should one use Stub over Mock method or otherwise?

+6  A: 

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

Sam Holder
+3  A: 

There's a great article explaining the differences you might read.

Darin Dimitrov