簡體   English   中英

Dagger2可用於單元測試和儀表測試嗎?

[英]Can Dagger2 be used for unit tests and instrumented tests?

https://developer.android.com/studio/test/index.html您是否可以使用Dagger2進行Local unit tests (位於module-name / src / test / java /。), Instrumented tests (位於模塊 - name / src / androidTest / java /。)或兩者兼而有之?

這有什么例子嗎?

是。 Dagger2適用於單元測試和儀器測試。 這里有一個例子: https//github.com/googlesamples/android-architecture/tree/todo-mvp-dagger

以下是模擬變體中使用的模塊示例,可用於單元/ ui測試:

@Module
abstract public class TasksRepositoryModule {

    private static final int THREAD_COUNT = 3;

    @Singleton
    @Binds
    @Local
    abstract TasksDataSource provideTasksLocalDataSource(TasksLocalDataSource dataSource);

    @Singleton
    @Binds
    @Remote
    abstract TasksDataSource provideTasksRemoteDataSource(FakeTasksRemoteDataSource dataSource);

    @Singleton
    @Provides
    static ToDoDatabase provideDb(Application context) {
        return Room.databaseBuilder(context.getApplicationContext(), ToDoDatabase.class, "Tasks.db")
                .build();
    }

    @Singleton
    @Provides
    static TasksDao provideTasksDao(ToDoDatabase db) {
        return db.taskDao();
    }

    @Singleton
    @Provides
    static AppExecutors provideAppExecutors() {
        return new AppExecutors(new DiskIOThreadExecutor(),
                Executors.newFixedThreadPool(THREAD_COUNT),
                new AppExecutors.MainThreadExecutor());
    }
}

https://github.com/googlesamples/android-architecture/blob/todo-mvp-dagger/todoapp/app/src/mock/java/com/example/android/architecture/blueprints/todoapp/data/source/TasksRepositoryModule。 Java的#L24

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM