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?
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