相关疑难解决方法(0)

Android单元使用Dagger 2进行测试

我有一个Android应用程序使用Dagger 2进行依赖注入.我还使用最新的gradle构建工具,它允许构建变体进行单元测试,一个用于仪器测试.我java.util.Random在我的应用程序中使用,我想模仿它进行测试.我正在测试的类不使用任何Android内容,所以它们只是常规的java类.

在我的主代码中,我Component在一个扩展Application类的类中定义了一个,但在单元测试中,我没有使用Application.我试着定义测试ModuleComponent,但匕首不会产生Component.我也尝试使用Component我在我的应用程序中定义的并交换Module构建它的时间,但应用程序Component没有inject我的测试类的方法.我如何提供Random用于测试的模拟实现?

这是一些示例代码:

应用:

public class PipeGameApplication extends Application {

    private PipeGame pipeGame;

    @Singleton
    @Component(modules = PipeGameModule.class)
    public interface PipeGame {
        void inject(BoardFragment boardFragment);
        void inject(ConveyorFragment conveyorFragment);
    }

    @Override
    public void onCreate() {
        super.onCreate();
        pipeGame = DaggerPipeGameApplication_PipeGame.create();
    }

    public PipeGame component() {
        return pipeGame;
    }
}
Run Code Online (Sandbox Code Playgroud)

模块:

@Module
public class PipeGameModule {

    @Provides
    @Singleton
    Random …
Run Code Online (Sandbox Code Playgroud)

java android unit-testing dagger-2

50
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×1

dagger-2 ×1

java ×1

unit-testing ×1