Since testing classes in isolation is a good thing it is sometimes nice to be able to
have a quick dummy implementation of an interface without having to instantiate the object (and
needing a reference to a concrete class). Why mocking is good can be found in the links (copied from Genna)
This is a quick how-to stub with RhinoMocks.
What is stubbing? Stubbing is quickly creating dummy instances of interfaces. Stubs are not used to test behaviour (calls on objects). Mocks are used for that.
Without further redo a few handy usages :
Properties with getter/setter
interface IInterface { string Name{ get;set; } }
Can be used directly since the default property behaviour of stubs gives us getter setter
var mock = mocks.Stub<IInterface>(); mock.Name = "lee";
Readonly properties
Given an interface with a readonly property:
interface IInterface { string ReadOnly { get; } }
We can use it like this in test
var mock = mocks.Stub<IInterface>(); mock.Stub(a => a.ReadOnly).Return("kees"); mocks.ReplayAll();//don't forget or you will get null