gpt4 book ai didi

android - 如何将 Active Android 与内存数据库结合使用以使用 Robolectric 进行单元测试?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:54:45 25 4
gpt4 key购买 nike

正如标题所说。我知道 robolectric 中提供的内存数据库有限。有什么方法可以将它与 Active Android 一起使用吗?在默认配置下,似乎在运行所有测试后清除数据库,但不是针对每个测试。

最佳答案

我用的是greenDao——但是原理是一样的。

我的应用程序类初始化我的数据库(数据库有一个名称)。对于我的测试,我将 Application 子类化(它允许 Robolectric 调用此版本)并覆盖获取数据库名称的方法 - 并返回 null。这意味着我创建了一个内存数据库。由于应用程序创建是设置的一部分,因此每个测试都会使用一个新的内存数据库。

public class MyApplication extends android.app.Application {
@Override
public void onCreate() {
super.onCreate();
initialiseDB(getDatabaseName());
}

protected String getDatabaseName() {
return "regular-db-name";
}

private void initialiseDB(String dbName) {
// DB initialization

// one example would be:
Configuration.Builder builder = new Configuration.Builder(this);
builder.setDatabaseName(dbName);
ActiveAndroid.initialize(builder.create());
}
}

public class TestApplication extends MyApplication {
@Override
protected String getDatabaseName() {
// use fresh in memory db each time
return null;
}
}

关于android - 如何将 Active Android 与内存数据库结合使用以使用 Robolectric 进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19690811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com