Blog Stats
  • Posts - 90
  • Articles - 0
  • Comments - 39
  • Trackbacks - 2

 

How to use the Moq mocking library

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.

Feedback

# re: How to use the Moq mocking library

Gravatar Very useful post, without it I could spend all my life trying to find out how to use Dependency Injection with moq!

It's weird that they didn't put it on the documentations!

thanks
1/6/2009 3:59 AM | toni

# re: How to use the Moq mocking library

Gravatar I believe you have created a nice post ... but you could add more value to it but adding more examples ... thanks anyway 9/17/2009 6:33 AM | Car Market

Post a comment





 

 

 

Copyright © Liam McLennan