[英]Can Dagger2 be used for unit tests and instrumented tests?
https://developer.android.com/studio/test/index.html Are you able to use Dagger2 for Local unit tests
(Located at module-name/src/test/java/.), Instrumented tests
(Located at module-name/src/androidTest/java/.) or both? https://developer.android.com/studio/test/index.html您是否可以使用Dagger2进行
Local unit tests
(位于module-name / src / test / java /。), Instrumented tests
(位于模块 - name / src / androidTest / java /。)或两者兼而有之?
Are there any examples of this? 这有什么例子吗?
Yes. 是。
Dagger2
works in unit tests and instrumented tests. Dagger2
适用于单元测试和仪器测试。 An example is here: https://github.com/googlesamples/android-architecture/tree/todo-mvp-dagger 这里有一个例子: https : //github.com/googlesamples/android-architecture/tree/todo-mvp-dagger
Here is an example of a module used in a mock variant which can be used for unit/ui testing: 以下是模拟变体中使用的模块示例,可用于单元/ 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 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.