此answer非常有助于我指出正确的方向。
但是,事情并不完全清楚。
拜托,有人可以向我解释一下:
这意味着我实际上必须更改生产代码,以便我可以注入模拟依赖项?
示例:
@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个Gradle productFlavors, - 包含生产模块和组件的一个, - 一个包含嘲笑的人。
正确?
感谢您的帮助!
答案 0 :(得分:0)
依赖注入的强大功能非常方便,特别是对于测试,因为您可以轻松地将测试环境中的依赖项切换为虚拟依赖项。
它的构建方式如下:
如果你想要一个正确的例子我真的建议你检查这个boilerplate,因为它完全基于使用Dagger2的DI。
锅炉板当前处理的依赖关系如下: