使用Dagger2时创建测试依赖项

10
在阅读 Dagger 2 的文档时,我无法找到一种简单的方法来在为应用程序进行测试时提供依赖项。我找到的唯一线索是这个:

Dagger 2 不支持覆盖。为了进行简单测试伪造而覆盖的模块可以创建一个模块的子类来模拟这种行为。使用覆盖并依赖依赖注入的模块应该被分解,以便覆盖的模块代替两个模块之间的选择。

我不明白如何在 Android 上设置这样的配置,有人可以解释吗?


https://google.github.io/dagger/testing.html怎么样? - Marian Paździoch
1个回答

12

目前(截至v2.0.0版本),在Dagger 2中实现这一点是不可能的,需要使用一些变通方法。您可以在此处 阅读相关信息。

我提出了一个 变通方法,但这需要对生产代码进行更改。

简而言之:

  • @Component提供额外的setter(例如,在Android中的Application类中提供setter)
  • 测试组件必须扩展生产组件

有关更多信息,请查看两个链接。希望这个问题会在Dagger 2的未来版本中得到解决。


非常感谢!@tomrozb,那个解决方法现在应该可以用了,直到更优雅的解决方案出现。 - Julian Suarez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接