我正在从Dagger 2.0.2迁移到Dagger 2.12并计划使用dagger.android
API。
我的问题是关于迁移测试代码。目前,我有一个AppModule
和一个TestAppModule
,它使用@Override
注释扩展它并覆盖一些依赖项。这是一个例子:
@Module
public class TestAppModule extends AppModule {
@Override
public UserDao provideUserDao() {
return mock(UserDao.class);
}
}
现在使用Dagger 2.12,如果我尝试覆盖依赖项
TestAppModule
,引发错误:error: @Provides methods may not be overridden in modules.
在TestModule
中使用AppModule
中定义的其他依赖项时,覆盖和模拟某些依赖项的推荐方法是什么?
如果人们认为有必要,我可以发布我的Dagger设置的精简版本。
答案 0 :(得分:4)
我最终解决了它,只是没有用TestAppModule
注释@Module
。这实现了部分嘲弄。
public class TestAppModule extends AppModule {
@Override
public UserDao provideUserDao() {
return mock(UserDao.class);
}
}