我正在从Dagger2.0.2迁移到Dagger2.12,并计划使用dagger.androidapi。
我的问题是关于迁移测试代码。目前,我有一个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);
    }
}

10-08 11:17