Rhino Mocks Futures
I have been thinking about this for a while now, and I am getting ready to release Rhino Mocks 3.5. The major feature is taking advantage on C# 3.0 language features. This allow some really interesting experimentation.
var mockedSmsSender = mocks.ToBeNamedMocked<ISmsSender>();
var mockedRepository = mocks.ToBeNamedMocked<IUserRepository>();
mockedRepository.Stub( x=> x.GetUserByName("ayende") ).Return( new User{Name="ayende", Pass="1234"});
new LoginController(mockedSmsSender, mockedRepository ).ForgotYourPassword("ayende");
mockedSmsSender.Verify( x => x.Send("ayende, your pass is 1234");
A few things to note about this code.
- No explicit record / replay model
- Arrange Act Assert model
- You can setup return values by using Stub()
- You can setup expectations using Expect(), with the same syntax
- More complex verification is also possible.
- I don't know what to call this new mode
As an aside, I am deprecating CreateMock in favor of StrictMock. Using strict mocks by default was a bad design decision on my part.
Thoughts?