Android测试:Dagger2+;格拉德尔
这非常有助于为我指明正确的方向 然而,事情对我来说并不完全清楚 请有人能给我解释一下吗:Android测试:Dagger2+;格拉德尔,android,gradle,integration-testing,dagger-2,Android,Gradle,Integration Testing,Dagger 2,这非常有助于为我指明正确的方向 然而,事情对我来说并不完全清楚 请有人能给我解释一下吗: 选项1:通过子类化模块覆盖绑定 这意味着我实际上必须更改生产代码,以便注入模拟依赖项 例如: @Test public void testFoo(){ MyClass class=new MyClass(); assertTrue(class.doStuff()); } public class MyClass(){ @Inject private Dependency dependency; pu
- 选项1:通过子类化模块覆盖绑定
@Test
public void testFoo(){
MyClass class=new MyClass();
assertTrue(class.doStuff());
}
public class MyClass(){
@Inject
private Dependency dependency;
public MyClass(){}
MyDaggerComponent.builder().foo(new MockDependency).build.inject(MyClass.this);
}
这意味着我需要更改MyClass以通过模拟模块
对吗
- 选项2:单独的组件配置
谢谢你的帮助 依赖项注入的功能非常方便,尤其是在测试中,因为您可以轻松地将测试环境中的依赖项切换到虚拟依赖项 其建造方式如下所示:
- 生产代码中的依赖项应该是注入的,而不是硬编码的李>
- 在您的测试环境中,您应该构建等效的测试模块和测试组件,这些模块和组件将替换实际代码中的任何依赖项
- 数据库依赖项:封装所有数据库操作
- 共享首选项依赖项:处理共享首选项
- 本地文件依赖项:用于保存文件
- 分析相关性:涵盖向分析后端报告事件的所有操作(GA、Segment、FB、Flurry..)
- 日志依赖项:封装与登录到控制台相关的所有操作
- Api依赖项:封装所有与Api相关的操作