我现在正在玩 Dagger,显然有些功能不适合我。
我实际上是在尝试ObjectGraph.plus()
使用模拟模块来扩展我的 ObjectGraph(通过),该模块覆盖了已经创建的图中的真实模块之一。但显然我的模拟模块被忽略了,所以调用了真正的接口。
但是,如果我尝试在图形创建阶段提供我的模拟模块 - 一切正常..
在我的情况下MockModule1
,覆盖提供者RealModule1
不起作用:
objectGraph = ObjectGraph.create(new RealModule1(),
new RealModule2(),
new RealModule3());
objectGraph = objectGraph.plus(new MockModule1());
工作正常
objectGraph = ObjectGraph.create(new RealModule1(),
new RealModule2(),
new RealModule3(),
new MockModule1());
RealModule1.java
@Module(injects = MainActivity.class)
public class RealModule1 {
@Provides
ISomething provideSomething() {
return new Something();
}
}
MockModule1.java
@Module(overrides=true, injects = MainActivity.class)
public class MockModule1 {
@Provides
ISomething provideSomething() {
return new MockSomething();
}
}
我错过了什么吗?