Realm 的 kotlin 中的 Android 测试

2024-02-05

如何在 Kotlin 中实现 Android 中领域数据库的简单测试?

我尝试改编来自java领域的片段在github上测试 https://github.com/realm/realm-java/blob/master/examples/unitTestExample/src/test/java/io/realm/examples/unittesting/ExampleRealmTest.java到 kotlin 并得到下一个代码:

import io.realm.Realm 
import io.realm.log.RealmLog 
import org.hamcrest.CoreMatchers 
import org.junit.Assert

import org.junit.Test import org.junit.Before import org.junit.Rule
import org.mockito.Mockito.`when` 
import org.powermock.api.mockito.PowerMockito 
import org.powermock.modules.junit4.rule.PowerMockRule

class DBTest {

    @Rule
    var rule = PowerMockRule()
    lateinit internal var mockRealm: Realm

    @Before
    fun setup() {
        PowerMockito.mockStatic(RealmLog::class.java)
        PowerMockito.mockStatic(Realm::class.java)

        val mockRealm = PowerMockito.mock(Realm::class.java)

        `when`(Realm.getDefaultInstance()).thenReturn(mockRealm)

        this.mockRealm = mockRealm
    }

    @Test
    fun shouldBeAbleToGetDefaultInstance() {
        Assert.assertThat(Realm.getDefaultInstance(), CoreMatchers.`is`(mockRealm))
    }

}

但是当我执行测试时我得到:

org.junit.internal.runners.rules.ValidationError: The @Rule 'rule' must be public.

您可以像这样公开规则的 getter:

@get: Rule
var rule = PowerMockRule()

或者您可以使用以下命令将其标记为 Java 样式字段@JvmField注解:

@JvmField @Rule
var rule = PowerMockRule()

您可以在此答案中找到更多详细信息:https://stackoverflow.com/a/32827600/4465208 https://stackoverflow.com/a/32827600/4465208

诗。您还应该考虑将其设为val如果您不打算在任何地方改变它的值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Realm 的 kotlin 中的 Android 测试 的相关文章

随机推荐

  • 为什么我的平方函数不运行?

    我决定编写一个程序来计算数字的平方只是为了好玩 使用在线编译器 我输入了代码 据我所知 没有错误 它不会运行它只会有一个空白的控制台条目 我的代码 import math def square number raw input Please
  • php:自动缩进整个代码?

    是否有任何 netbeans eclipse 的软件 插件可以在插入后自动缩进整个代码 当我按下 ENTER 以获得新功能时 不仅仅是缩进 我想粘贴一个没有缩进的代码 它会自动缩进所有内容 因为它可以识别使用的语言 应该可以节省很多时间 在
  • 如何在 Google 电子表格中减去两组值?

    我有两组值A A and B B 如何在它们之间进行设置差异 最好使用公式 即从A A不存在于B B 这样的公式可以做到这一点 并且速度相当快 filter A A countif B B A A 0
  • 在 View(CakePHP) 中,获取当前控制器的正确方法?

    在视图中 我可以通过使用来采取行动 this gt action 但是 我无法通过以下方式获取控制器名称 this gt controller 在视图中获取当前控制器的正确方法是什么 Use this gt params controlle
  • 共享内存编程中的 shm_open 和 ftruncate()

    我想创建一个共享内存对象并将其截断为特定大小 SHMSIZE 定义为 512 MODE 设置为 S IRUSR S IWUSR S IWGRP S IRGRP S IWOTH S IROTH 这是我的代码 char shm name Sha
  • SQL Server 中的合并和合并联接相同吗?

    SQL Server 中的合并和合并联接有什么区别 MERGE是一种DML语句 数据操作语言 也称为 UPSERT 更新 插入 它尝试根据您定义的条件将源 表 视图 查询 与目标 表 可更新视图 匹配 然后根据匹配结果向目标表中插入 更新
  • 找不到模块node_modules\@ionic\app-scripts IONIC 3

    我已经安装了npm 3 10 10那么我有installed ionic 3 9 2 and cordova 7 0 1 我尝试了以下步骤 ionic start newProject 选择一个选项卡项目 ionic serve 该命令将t
  • Objective-C 编程中单键保存多个值的 NSMutableDictionary

    请告诉我如何在 NSMutableDictionary 中为同一个键拥有多个值 当我使用以下方法时 这些值将被替换为最近的值 就我而言 dictionary setObject forename forKey NSNumber number
  • 数据标准化和编写查询

    我是jr开发人员 工作 5 个月 我有一个关于数据标准化的问题 现在 据我了解 数据规范化背后的一般原则是创建一个将数据冗余保持在最低限度的 RDBMS 在我的项目中 一位数据库人员创建了一个数据库 我们有 50 多个表 数据库中的表通常非
  • 无法找到工件 jackson-modules-java8 jar

    我正在使用 pom xml 像
  • 如何在 gradle 项目中使用 eclim

    我的 eclim 设置与 eclipse 项目完美配合 但我想使用 gradle 构建系统 我正在使用 Libgdx 框架 它提供 gradle templatete 项目 那么有没有办法使用eclime eclipse gradle 你最
  • 如何在 ASP.NET Identity 1.1 nightly build 中实现 TokenProvider?

    我正在尝试使用 ASP NET Identity 1 1 的夜间构建来实现密码重置功能 有一个 UserManager GetPasswordResetToken 方法 但它抛出异常 没有注册 ITokenProvider ASP NET
  • matplotlib afm 导入速度极慢

    导入时间长得令人无法接受 from matplotlib import pylab as plt gt 3 0124739 secs 这是 cProfile 的输出 它清楚地显示了 afm py 的问题 这是 afm py 的一些接口Ado
  • 如何在 Typesafe Config 中获取解开的密钥?

    测试用例 import org specs2 mutable class HelloWorldSpec extends Specification Typesafe Config should allow me to see my esca
  • 用Python实现的好的双向加密库是什么?

    我们现在使用的应用程序的身份验证系统使用双向哈希 基本上只不过是美化的凯撒密码 在不详细了解它的情况的情况下 我想用更安全的加密算法替换它 并且需要在服务器端完成 不幸的是 它需要是双向的 而 hashlib 中的算法都是单向的 有哪些好的
  • 未实现委托方法导致崩溃

    我创建了一个协议并将其分配给委托对象 protocol AppBrainDelegate
  • C++ 私有函数真的需要放在头文件中吗?

    我一直认为头文件是一种描述类的 公共接口 在这种情况下 最好将私有字段和函数保留在 cpp 文件中 我知道私有字段需要位于标头中 以便其他类可以知道类的实例将消耗多少内存 但当我即将编写一个私有辅助函数时 我想到可以使该函数成为static
  • 如何防止用户通过写URL直接访问我的html页面?

    我想要一个硬编码的登录页面 登录 html 没有数据库 如果一个人写了正确的用户名和密码 它会重定向到 page2 html 现在我的问题是 如果一个人直接为 page2 html 编写 URL 他将能够访问它 而无需任何登录 理想案例 g
  • 对 JPanel 使用 addMouseListener() 和 PaintComponent()

    这是我的后续previous https stackoverflow com questions 12175174 paintcomponent vs paint and jpanel vs canvas in a paintbrush t
  • Realm 的 kotlin 中的 Android 测试

    如何在 Kotlin 中实现 Android 中领域数据库的简单测试 我尝试改编来自java领域的片段在github上测试 https github com realm realm java blob master examples uni