too*_*o42 5 android unit-testing dagger-2
https://developer.android.com/studio/test/index.html
您是否可以使用Dagger2 Local unit tests(位于module-name/src/test/java /.),Instrumented tests(位于module-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());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
698 次 |
| 最近记录: |