Geeks With Blogs
Liam McLennan
Moq is yet another .NET mocking library, similar to Rhino mocks, NMock, TypeMock etc. It is a nice library but the documentation is lacking. The purpose of this post is to demonstrate a simple way of using moq.

I am trying to test a service called ProductService. ProductService has two external dependencies, IProductRepository and IImageResizer, that are injected in the constructor. I wish to mock the two dependencies. A moq mock object is created like so:
Mock<IProductRepository> productRepo = new Mock<IProductRepository>();
The trick is to realise that this object does not implement IProductRepository. To get that you need to use the Mock<T>.Object property. So the correct code to instantiate my service is:
Mock<IProductRepository> productRepo = new Mock<IProductRepository>();
Mock<IImageResizer> imageResizer = new Mock<IImageResizer>();
ProductService service = new ProductService(productRepo.Object, imageResizer.Object);

The other features of moq, like setting and verifying expectations, are obvious from the documentation. Posted on Friday, May 9, 2008 12:55 AM | Back to top

Copyright © Liam McLennan | Powered by: