unit-testing - 无法从测试用例访问房间数据库 - Android
问题描述
执行数据库操作时出现错误。在我的项目中,当我尝试deleteAll()
从 Dao 类访问时,AuthenticationDao
即Room Database
从我的测试用例中,我得到以下错误
参考以下代码:
@Dao
public interface AuthenticationDao {
@Insert
void insert(Authentication authentication);
@Query("delete from authentication")
void deleteAll();
@Query("select * from authentication")
Authentication getAuthInformation();
}
应用数据库.java
@Database(entities = {Authentication.class}, version = 1, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
private static AppDatabase INSTANCE;
public static AppDatabase getAppDatabase(Context context) {
if (INSTANCE == null) {
INSTANCE =
Room.databaseBuilder(context,
AppDatabase.class,
"my-database")
.allowMainThreadQueries()
.build();
}
return INSTANCE;
}
public abstract AuthenticationDao authenticationDao();
}
问题是什么?是因为我AppDatabase dbInstance = Room.databaseBuilder(context,AppDatabase.class,"my-database")
.allowMainThreadQueries()
.build();
用来初始化我的数据库对象吗?
如果我使用AppDatabase dbInstance = Room.inMemoryDatabaseBuilder(InstrumentationRegistry.getContext(), AppDatabase.class).allowMainThreadQueries().build();
,那么它工作正常。
可能是什么原因?
解决方案
推荐阅读
- azure - Azure Functions - 发布 local.settings.json
- python - IndentationError:databricks 和 pyspark 中的意外缩进
- php - 金额输入栏
- centos7 - 如何在vim8中启用python3
- r - 使用 r 将 csv 转换为时间序列?
- spring - 检查上传的 Spring Multipart File 是否有表单字段
- c - realloc noob 用法,在某些情况下工作,否则会出现段错误
- google-cloud-source-repos - Google Cloud Source Repositories:更改默认分支?
- apache-camel - 如何在异常时停止骆驼动态路由
- shell - 在部署之前检查 GCloud 项目的脚本