【发布时间】:2011-07-04 16:56:09
【问题描述】:
我们目前使用 Autofac 作为 IoC 容器遵循 DI 模型。
我们最近开始研究 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();
后者更冗长,但似乎更灵活,更适合复杂的模拟。
【问题讨论】:
-
这里有一个类似的问题可能会提供一些见解:stackoverflow.com/questions/300177/…
-
@Jason Down:我想说这不是一个“类似”的问题,而是同一个问题。投票以重复关闭。
-
@Don Roby:是的,我想这几乎是完全相同的问题。
-
我一直觉得用DI来解析mocked对象比直接new一个mocked对象要好,因为mocked对象也可能有依赖关系,如果只使用mocking就必须手动设置,但是可以通过DI框架自动连线。
标签: c# .net mocking moq rhino-mocks