Я играю с кинжалом прямо сейчас, и, видимо, некоторые из функций не работают для меня.
Я фактически пытаюсь расширить свой ObjectGraph (через ObjectGraph.plus()) модулем mock, который переопределяет один из реальных модулей в уже созданном графе. Но, по-видимому, мой макет модуль игнорируется, поэтому называются реальные интерфейсы.
Однако, если я попытаюсь предоставить модный модуль во время этапа создания графа - все отлично работает.
В моем случае 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();
}
}
Я что-то пропустил?