我正在从 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 设置的精简版本。
最佳答案
我最终通过简单地不使用 @Module
注释 TestAppModule
来解决它。这样就实现了部分mocking。
public class TestAppModule extends AppModule {
@Override
public UserDao provideUserDao() {
return mock(UserDao.class);
}
}
关于android - 迁移到 Dagger 2.12 并测试模块覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47168004/