My team use Rhino Mocks at work, and as a Moq fan, one of my most missed features is the ability to access invocation arguments when returning a value. For example:
mock.Setup(x => x.Execute(It.IsAny<string>()))
.Returns((string s) => s.ToLower());
Rhino lacks this feature out of the box. It is possible, but pretty ugly:
mock.Stub(x => x.Execute(Arg<string>.Is.Anything))
.WhenCalled(invocation =>
invocation.ReturnValue =
((string) invocation.Arguments[0]).ToLower());
Today I wrote some quick extensions for Rhino to make it behave a bit more like Moq.
mock.Stub(x => x.Execute(Arg<string>.Is.Anything))
.Return<string, string>(s => s.ToLower());
Grab them here: RhinoExtensions.cs
April 1, 2010



1 Comment
limewire on April 30, 2010 at 7:26 am.
dang fun stuff dude.