在阅读 dagger 2 的文档时,我找不到在构建测试应用程序时提供依赖项的简单方法。我发现的唯一线索是:
Dagger 2 不支持覆盖。模块
覆盖简单测试假货可以创建
模块的子类来模拟该行为。
使用覆盖并依赖依赖注入的模块
应该被分解,以便被覆盖的模块被替换
表示为两个模块之间的选择。
我不明白如何在 Android 上设置这样的配置,有人可以解释一下吗?
目前,如果没有一些解决方法,Dagger 2(从 v2.0.0 开始)这是不可能的。你可以阅读相关内容here https://github.com/google/dagger/issues/110.
我已经提议了一种解决方法 https://stackoverflow.com/questions/26939340/how-do-you-override-a-module-dependency-in-a-unit-test-with-dagger-2-0/29996385#29996385但这需要更改生产代码。
简而言之:
- 提供额外的设置器
@Component
(例如,在 Android setter 中Application
class)
- 测试组件必须扩展生产组件
欲了解更多信息,请检查这两个链接。希望 Dagger 2 的未来版本能够解决这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)