@Pure.Krome: good response but I will add a few details
@Kevin: You have to choose a solution depending on the changes that you can bring to the code.
If you can change it, some dependency injection make the code more testable.
If you can’t, you need a good isolation.
With free mocking framework (Moq, RhinoMocks, NMock…) you can only mock delegates, interfaces and virtual methods. So, for static, sealed and non-virtual methods you have 3 solutions:
- TypeMock Isolator (can mock everything but it’s expensive)
- JustMock of Telerik (new comer, less expensive but still not
free) - Moles of Microsoft (the only free solution for isolation)
I recommend Moles, because it’s free, efficient and use lambda expressions like Moq. Just one important detail: Moles provide stubs, not mocks. So you may still use Moq for interface and delegates 😉
Mock: a class that implements an interface and allows the ability to dynamically set the values to return/exceptions to throw from particular methods and provides the ability to check if particular methods have been called/not called.
Stub: Like a mock class, except that it doesn’t provide the ability to verify that methods have been called/not called.