在测试在Android库模块中定义的会议室数据库并更改数据库属性时,出现错误:
var getFooBar = new string[] { "Foo", "Bar" }.GetGetter("Empty");
var x = getFooBar(0); // Returns "Foo"
var y = getFooBar(5); // Returns "Empty"
但是,清除数据和卸载无效。我只能假设这是因为它位于与应用程序不同的模块中。 我不想更改版本号,因为它尚未发布。
答案 0 :(得分:0)
如果更改属性,则还需要增加数据库的版本,如果进行了更改,请尝试以下操作:
@Database(entities = {Coin.class}, version = 6, exportSchema = false)
public abstract class CoinDatabase extends RoomDatabase {
public abstract CoinDao daoAccess();
}
另一方面,您可以在构建数据库时添加一个额外的参数(在我的情况下,存储库构造函数将构建db)。有趣的部分是 fallbackToDestructiveMigration(),因为Room没有“改变”或您可能在关系数据库中使用的东西,应该改用迁移。
public CoinRepository(Context context) {
coinDatabase = Room.databaseBuilder(context, CoinDatabase.class, DB_NAME).fallbackToDestructiveMigration().build();
}
答案 1 :(得分:0)
我发现的解决方案是,您必须卸载运行espresso测试时安装的测试apk,随后在卸载应用程序时也不会被卸载。
运行gradle任务./gradlew uninstallAll
时,您会看到它卸载了测试包Uninstalling com.example.roomexample.test
,一切都很好。