Can any of the Rhino experts explain me by giving a suitable example of the difference between the above methods on the MockRepository
class (Rhino Mocks framework).
Where should one use Stub over Mock method or otherwise?
Mocks supports three basic types of mock objects: Strict Mock. A strict mock requires you to provide alternate implementations for each method/property that is used on the mock. If any methods/properties are used which you have not provided implementations for, an exception will be thrown.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With