0

我对使用依赖注入很感兴趣,但是我很困惑我应该如何处理没有考虑到 DI 设计的外部库。

例如,如果我有一些构建项目范围内对象的代码,我可以使用接口,然后创建模拟版本以及这些的具体版本。

然而,相同的代码也可能使用外部库来写入数据库或调用 API 或其他任何东西。外部库可能只提供一个具体的实现。

这意味着我的代码将混合具体和抽象的东西,并迫使我在测试其他代码的同时测试外部库。

我应该为所有外部类创建包装器以便可以注入模拟版本吗?这似乎需要做很多工作。

4

2 回答 2

1

您还可以使用 Needle 框架轻松测试您的代码 - http://needle.spree.de/。它与 Mockito 和 EasyMock 很好地集成在一起。Needle 通过分析依赖关系和自动注入模拟对象来减少测试设置代码。

于 2012-10-28T20:16:09.233 回答
1

如果您确实必须创建具体的第三方依赖项的模拟来隔离您自己的单元,您可以使用诸如Mockito之类的模拟框架来非常轻松地做到这一点,该框架利用了仪器。

单元测试应该通知和加强你的设计决策,而不是驱动它们,你应该能够快速编写它们,以便将大部分精力集中在实际代码的设计和实现上。像 Mockito 这样的现代框架使这成为可能。

于 2012-10-28T13:22:38.910 回答