我在将我的Android应用从Dagger
迁移到Dagger2
时遇到问题。与匕首动态绑定2
我在测试过程中使用Dagger在不同的层注入模拟(单元,功能设备和其间的一切)。
E.g.我有一个NetworkingModule
,它提供了HttpTransport
和ServerConnector
。对于某些测试,我只是嘲笑http层,对于其他人我嘲笑ServerConnector
和其他测试用途发布类来测试与真实测试服务器的集成。
这些测试可以在所有构建版本上运行(调试,发布,...)。
我只发现了Dagger2
的描述,它为每个构建类型设置了一个静态注入配置 - 即绑定实际类的释放组件和绑定一组模拟的调试组件。
我需要找到一种方法让测试用例在应用程序启动阶段替换模块。
我该如何做到这一点?在我的想法中,当应用程序触发构建其必须使用组件的图时,我总是陷入停滞状态,这是一个组件的实现,它具有静态注释其模块的特定接口。
问一个问题:是否可以在提供相同注射的相同构建中编译多个模块?我将如何在运行时注入正确的模块?
有人可以请我为我的例子NetworkingModule
的解决方案。
BTW:我大量使用Espresso
,Robolectric
和Mockito
。
Thx。
您能否提供一个代码示例,您是如何做到的? – confile