我正在从Dagger2.0.2迁移到Dagger2.12,并计划使用dagger.android
api。
我的问题是关于迁移测试代码。目前,我有一个AppModule
和一个TestAppModule
来扩展它,并使用@Override
注释覆盖一些依赖项。下面是一个例子:
@Module
public class TestAppModule extends AppModule {
@Override
public UserDao provideUserDao() {
return mock(UserDao.class);
}
}
现在使用Dagger2.12,如果我在
TestAppModule
,引发错误:error: @Provides methods may not be overridden in modules.
建议如何重写和模拟
TestModule
中的某些依赖项,同时按原样使用AppModule
中定义的其余依赖项?如果人们认为有必要的话,我可以发布我的匕首设置的精简版本。
最佳答案
我最终解决了这个问题,只是没有用TestAppModule
注释@Module
。这实现了部分模仿。
public class TestAppModule extends AppModule {
@Override
public UserDao provideUserDao() {
return mock(UserDao.class);
}
}