gpt4 book ai didi

android - 使用Realm的测试方法

转载 作者:行者123 更新时间:2023-11-30 00:55:16 27 4
gpt4 key购买 nike

我有一个使用 Realm 的数据库数据源。所以现在我想测试那个类,但我面临一些关于如何使用固定装置以及如何模拟 Realm 的问题。我的数据库数据源如下所示:

public class DatabaseDataSource {
private Realm realm;

public DatabaseDataSource(Realm realm) {
this.realm = realm;
}


public Observable<RealmResults> getContacts(String firstName, String lastName, String city, String zipCode) {

final RealmQuery realmQuery = realm.where(Contact.class);
if(!TextUtils.isEmpty(firstName)) {
realmQuery.contains("firstName", firstName);
}
if(!TextUtils.isEmpty(lastName)) {
realmQuery.contains("lastName", lastName));
}
if(!TextUtils.isEmpty(city)) {
realmQuery.contains("city", city);
}
if(!TextUtils.isEmpty(zipCode)) {
realmQuery.contains("zipCode", zipCode);
}

return realmQuery.findAll()
.asObservable();
}
}

我正在使用 Robolectrics 进行其他测试,在这种情况下,我想在我的模拟 Realm 中有一个联系人列表,这样我就可以检查过滤是否正常工作。我怎样才能做到这一点?我试过这样做:

@RunWith(RobolectricTestRunner.class)
@Config(manifest=Config.NONE)
public class DatabaseDataSourceTest extends BaseTest {


private DatabaseDataSource databaseDataSource;

Realm realm;

@Before
public void setup() throws Exception {

Realm.init(RuntimeEnvironment.application.getApplicationContext());
Realm.setDefaultConfiguration(new RealmConfiguration.Builder().build());
realm = Realm.getDefaultInstance();

databaseDataSource = new DatabaseDataSource(realm);
}

@Test
public void getContacts_filterByName() {
databaseDataSource.getContacts("testName", null, null, null);
// I don't know what to do here
}

}

但是我在做的时候遇到了以下异常:

Realm.init(RuntimeEnvironment.application.getApplicationContext());

java.lang.UnsatisfiedLinkError: Can't load library: /var/folders/kc/76n8494x5cd2mtx340f27xch0000gn/T/android-tmp-robolectric409019390257818503/app_lib/librealm-jni.dylib

我应该怎么做?

最佳答案

How to run Unit test in Realm Db using Roboelectric说,Roboelectric 还不受支持,所以你不能使用单元测试,只能在真实的 android 设备上进行仪器测试。

所有测试都可以在单线程上运行,测试中不需要 rx。

关于android - 使用Realm的测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40279233/

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