realm - 如何使用 Robolectric 在 Realm Db 中运行单元测试

标签 realm robolectric

我已经编写了一个简单的测试用例,用于测试 Realm 数据库。但我总是出错

java.lang.UnsatisfiedLinkError: Can't load library: /tmp/android-tmp-robolectric4167396756480823821/app_lib/librealm-jni.so

这是我的测试

import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import io.realm.Realm;

@RunWith(RobolectricTestRunner.class)
public class RealmTest {

@Test
public void realmShouldWork() {
    Realm realm = Realm.getInstance(RuntimeEnvironment.application.getApplicationContext());
 }
}

我正在 Application 类中设置 Realm 配置。在正常运行模式下它工作正常。问题仅在测试模式下出现。我无法在测试模式下初始化 Realm 数据库实例。

最佳答案

Realm 还不支持 Robolectric:https://github.com/realm/realm-java/issues/904

但是如果你想将 Realm stub 以使用 Robolectric,你可以在我们的单元测试示例中看到如何做到这一点:https://github.com/realm/realm-java/tree/master/examples/unitTestExample

关于realm - 如何使用 Robolectric 在 Realm Db 中运行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36715273/

相关文章:

android - Realm :如何查询多对多字段

swift - 按其字段的不同值对 Realm 对象进行分组

android-studio - 安卓工作室 : Task 'testClasses' not found in project

android - 使用 robolectric 测试图像处理例程

android - Robolectric 访问数据库抛出错误

ios - 如何检查数组是否包含在集合中?

swift - 如何更新版本来修复此错误? : 'Realm version is higher than the current version provided to ` setSchemaVersion:withMigrationBlock :`'

android - Robolectric + Mockito + Marshmallow + 权限

android - 资源 $NotFoundException google_play_services_version 在 gradle 和 robolectric 升级之后

image - 为什么建议将图像存储在磁盘而不是 Realm 中