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 测试 的相关文章

  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • 如何以编程方式检查 AndroidManifest.xml 中是否声明了服务?

    我正在编写一个库 该库提供了一项服务 其他开发人员可以通过将其包含在他们的项目中来使用该服务 因此 我无法控制 AndroidManifest xml 我在文档中解释了要做什么 但一个常见的问题是人们忽略了将适当的 标记添加到其清单中 或者
  • 是否可以将数组或对象添加到 Android 上的 SharedPreferences

    我有一个ArrayList具有名称和图标指针的对象 我想将其保存在SharedPreferences 我能怎么做 注意 我不想使用数据库 无论 API 级别如何 请检查SharedPreferences 中的字符串数组和对象数组 http
  • 当文本输入聚焦在 React Native for Android 的底部工作表上时,视图移出屏幕

    我正在使用图书馆 https github com osdnk react native reanimated bottom sheet https github com osdnk react native reanimated bott
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 无法访问 com.google.android.gms.internal.zzbfm 的 zzbfm 类文件未找到

    我正在将我的 Android 应用程序项目从GCM to FCM 为此 我使用 Android Studio 中的 Firebase 助手工具 并遵循 Google 开发人员指南中的说明 一切都很顺利 并将我的应用程序代码更改为FCM根据助
  • 尝试将相机切换回前面但出现异常

    尝试将相机切换回前面 但出现异常 找不到 问题请检查并帮助 error 01 27 11 49 00 376 E AndroidRuntime 30767 java lang RuntimeException Unable to start
  • 在gradle插件中获取应用程序变体的包名称

    我正在构建一个 gradle 插件 为每个应用程序变体添加一个新任务 此新任务需要应用程序变体的包名称 这是我当前的代码 它停止使用最新版本的 android gradle 插件 private String getPackageName
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 获取当前 android.intent.category.LAUNCHER 活动的实例

    我创建了一个库项目 并在多个应用程序之间共享 我实现了一个简单的会话过期功能 该功能将在一段时间后将用户踢回到登录屏幕 登录屏幕活动是我的主要活动 因此在清单中它看起来像这样
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 如何使用 IF 检查 TextView 可见性

    我有一个 onCheckedChangeListener 来根据选择的单选按钮显示文本视图 我有 1 个疑问和 1 个难题 想知道是否有人可以帮助我 问题 您能否将单选组默认检查值设置为 否 单选按钮 以便一开始就不会检查任何内容 问题 如
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • 如何使用InputConnectionWrapper?

    我有一个EditText 现在我想获取用户对此所做的所有更改EditText并在手动将它们插入之前使用它们EditText 我不希望用户直接更改中的文本EditText 这只能由我的代码完成 例如通过使用replace or setText
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591

随机推荐

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

    我决定编写一个程序来计算数字的平方只是为了好玩 使用在线编译器 我输入了代码 据我所知 没有错误 它不会运行它只会有一个空白的控制台条目 我的代码 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