2010-06-12 82 views
0

我的理解是,DI允许你使用IoC容器做这样依赖注入和Moqing

的东西,如果一个构造函数需要一个IFoo的,用一个具体的类Foo:IFoo的。

但是,如何使用Moq的模拟对象不同?它是否也使用DI创建假Foo?

谢谢。

+0

Duplicate:http://stackoverflow.com/questions/1465849/using-ioc-for-unittesting – 2010-06-13 10:21:37

+0

@Mark Seemann,我认为这个问题不是重复 - 你指出的问题是假设知识嘲讽框架和国际奥委会之间的区别,但想知道如何使用国际奥委会来进行测试。这个问题看起来更多地是关于嘲笑框架和国际奥委会之间的区别。 – 2010-06-13 20:01:37

+0

@Blair康拉德:也许,但这些问题也已经得到解答:http://stackoverflow.com/questions/130794/what-is-dependency-injection – 2010-06-13 20:14:21

回答

2

“依赖注入”是指将一些外部资源提供给需要它的对象的一般做法。外部资源或依赖关系可以通过对象的构造函数,属性或方法提供,甚至可以作为方法参数提供。 你说得对,通常的做法是使用IOC来管理可能的依赖关系并将它们提供给他们的“客户”。

与其他模拟框架(或隔离框架)一样,Moq是一种工具,可用于生成可用作所测试类的依赖关系的假(或存根或模拟)对象。大多数嘲讽框架(包括Moq,我认为,但我自己并没有使用它)并没有规定如何将假货传递给被测试的类(TypeMock Isolator在这里是一个例外,因为它具有可以注入依赖于被测试的类)。

没有理由不能使用国际奥委会来注册您的Moq创建的假货并将它们提供给您的课堂,但这与Moq(或NMock或Rhino Mocks)无关。