2010-06-12 108 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)無關。