How to use Rhino Mocks – documented through tests
I wanted to come up with a way to show people how to use Rhino Mocks (other than telling them to read the documentation). What better way to do this than by showing you how it works through a bunch of simple unit tests that document how Rhino Mocks works?
So that’s what I did. You can view the code here, or if you want to download the whole project and run the tests, you can get the whole thing here.
(If you’re interested in Moq, how it compares to Rhino Mocks, and to see Moq documented through tests, check out Steve Horn’s post.)
UPDATE: Fixed the test that was incorrectly showing how to use Expect() and VerifyAllExpectations(). Thanks to Sharon for pointing this out.
This is a great resource (and a cool way to present it); I’ve been sharing it with my co-workers. It contains a false-positive test, though–the stub.VerifyAllExpectations test isn’t verifying. I had been thinking of blogging about that particular gotcha, so this was the perfect example to use in my explanation.
http://www.lostechies.com/blogs/sharoncichelli/archive/2010/03/18/rhino-mocks-examples-with-a-fix.aspx
Thanks for creating this blog post/test fixture. (Also, NBehave is cool; I hadn’t seen it in action before. It makes your tests especially readable. Nice.)
Good one and well written sample code for Rhino Mocks.
Thanks for the example. Finally something I can use as a guide.
Excellent guide which really helps a newbie get started using RhinoMocks. One question though, the Should.dll, are these extenstion methods that you have written? Only I would have thought it would be better to have your examples use standard Rhino Mocks syntax.
@Rich,
The Should library doesn’t replace anything in Rhino.Mocks, it replaces NUnit assertions like Assert.IsTrue. I’m using all of the actual Rhino.Mocks methods in the examples.
(And no, I didn’t write the Should library)
Jon, thanks, great article!
Thank you, I found them very useful
Right on spot. Tried to understand it before but couldn’t. This style on explanation is great on very easy to get. Thanks Jon.
Nice Article.
thank you Jon.
Is this uptodate? I am confused. for example, this article uses “MockRepository.GenerateStub” whereas I do not have “GenerateStub” available. I have however “Mock” which works fine.
So, I replace the call
MockRepository.GenerateStub
with
MockRepository.Mock
Thank you