В настоящее время мы следуем модели DI, используя Autofac в качестве контейнера IoC.
Недавно мы начали изучать фреймворки для имитации, такие как MOQ и Rhino Mocks. Однако мы не можем оправдать их использование простым созданием классов реализации Mock для каждого из наших интерфейсов.
Зачем это нужно:
var mock = new Mock<IFoo>();
mock.Setup(foo => foo.DoSomething("ping")).Returns(true);
Вместо этого:
class FooMock : IFoo {
bool DoSomething(string input) {
return input == "ping";
}
}
mock = new FooMock();
Последний вариант более подробный, но кажется более гибким. и подходит для сложных макетов.