Dagger
我在将我的 Android 应用程序从Dagger2
.
我在测试期间使用 Dagger 在不同的层注入模拟(单元、功能设备以及介于两者之间的所有内容)。
例如,我有一个NetworkingModule
提供 aHttpTransport
和 a 的 a ServerConnector
。对于某些测试,我只是模拟 http 层,对于其他测试,我模拟 . ServerConnector
,而其他测试使用发布类来测试与真实测试服务器的集成。
这些测试可以在所有构建风格(调试、发布等)上运行。
我只找到了对Dagger2
每个构建类型设置单个静态注入配置的描述 - 即绑定真实类的发布组件和绑定一组模拟的调试组件。
我需要找到一种方法让测试用例在应用程序启动阶段替换模块。
我怎样才能做到这一点?在我的想法中,当应用程序触发构建图时,我总是陷入困境,它必须使用一个组件,该组件是某个接口的实现,它的模块有静态注释???
换个说法:是否可以在同一个构建中编译多个提供相同注入的模块?然后我将如何在运行时注入正确的模块?
有人可以为我的NetworkingModule
.
顺便说一句:我大量使用Espresso
,Robolectric
和Mockito
.
谢谢。