На данный момент существует ряд различных насмешливых фреймворков. Я бы порекомендовал вам либо взглянуть на RhinoMock или TypeMock. Оба бесплатны для личных / открытых проектов. У TypeMock также есть корпоративная лицензия.
RhinoMock заставляет вас реорганизовать код для тестируемости (если необходимо, если у вас уже есть тестируемый код, у вас все хорошо). Это требует больше работы, но это оставит вас со слабосвязанным кодом, который является благом сам по себе. Из-за этого есть определенные конструкции, которые вы просто не можете высмеивать напрямую с Rhino. Тем не менее, вы всегда можете ввести дополнительные слои косвенности и решить ее таким образом. Суть, однако, заключается в следующем: вам нужно проделать дополнительную работу, но в конечном итоге рефакторинг принесет пользу вашему коду.
С другой стороны, TypeMock работает, изменяя код на лету (он использует API профилировщика для внедрения кода). Это позволяет использовать макетирование для кода, который иначе не подходит для этого типа тестирования. TypeMock в значительной степени позволит вам высмеивать что угодно (кроме mscorlib), поэтому его легко начать и он хорошо работает с унаследованным кодом. Однако, поскольку вы не обязаны реорганизовывать свой код, вы не получаете дополнительного преимущества от слабо связанных типов. Кроме того, TypeMock иногда приводит к очень странным ошибкам из-за того, что работающий код модифицируется.