迁移到 Dagger 2.12 并测试模块覆盖

lim*_*nal 3 android dagger dagger-2

我正在从 Dagger 2.0.2 迁移到 Dagger 2.12 并计划使用dagger.androidAPI。

我的问题是关于迁移测试代码。目前,我有一个AppModule和一个TestAppModule,它扩展了它并使用@Override注释覆盖了一些依赖项。下面是一个例子:

@Module
public class TestAppModule extends AppModule {

    @Override
    public UserDao provideUserDao() {
        return mock(UserDao.class);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在使用 Dagger 2.12,如果我尝试覆盖 中的依赖项 TestAppModule,则会引发错误:error: @Provides methods may not be overridden in modules.

使用原样定义的其余依赖项在一段TestModule时间内覆盖和模拟某些依赖项的推荐方法AppModule是什么?

如果人们认为有必要,我可以发布我的 Dagger 设置的精简版本。

lim*_*nal 6

我最终通过简单地不注释TestAppModulewith来解决它@Module。这实现了部分模拟。

public class TestAppModule extends AppModule {

    @Override
    public UserDao provideUserDao() {
        return mock(UserDao.class);
    }
}
Run Code Online (Sandbox Code Playgroud)