簡體   English   中英

依賴注入,從外部庫中嘲笑東西?

[英]Dependency Injection , mocking stuff from external libraries?

我對使用依賴注入很感興趣但是我很困惑我應該如何處理那些不是用DI設計的外部庫。

例如,如果我有一些代碼構造了我項目范圍內的對象,我可以使用一個接口,然后創建模擬版本以及這些版本的具體版本。

但是,相同的代碼也可能使用外部庫來寫入數據庫或調用API等等。 外部庫可能只提供具體的實現。

這意味着我的代碼中將混合使用具體和抽象的東西,這將迫使我在與其余代碼同時測試外部庫。

我應該為所有外部類創建包裝器,以便我可以注入模擬版本嗎? 這似乎很多工作。

如果你必須創建混凝土模擬,第三方依賴項以隔離你自己的單元,你可以使用模擬框架,如Mockito ,使用儀器非常容易。

單元測試應該通知並強化您的設計決策,而不是驅動它們,您應該能夠快速編寫它們,以便將大部分精力集中在實際代碼的設計和實現上。 像Mockito這樣的現代框架使這成為可能。

您還可以使用Needle Framework輕松測試代碼 - http://needle.spree.de/ 它與Mockito和EasyMock完美集成。 Needle通過分析依賴關系和自動注入模擬對象來減少測試設置代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM