问题标签 [mockk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
966 浏览

unit-testing - Kotlin-mockk 链式调用

我正在尝试使用 Kotlin 中的 mockk 库在我的单元测试中执行链式调用。下面是我的代码:

而我的实现代码:

我正在尝试存根内部调用(sayHello()),但出现未解决的引用错误。根据链调用的 Mockk 文档,它说这应该是有效的。

我试过清理和重建(但遇到编译错误)。尝试重新启动 IDE。尝试使缓存无效并重新启动。

我有什么遗漏/做错了吗?

参考:

https://mockk.io/#chained-calls

https://stackoverflow.com/a/54347784/1342086

0 投票
1 回答
414 浏览

android - 如何比较或验证不覆盖 equals 方法的对象?

我在 Kotlin (Android) 中使用 mockk 进行单元测试。

我想验证一个函数是否被调用:

在这种情况下Param2,生成的 Java 类不会覆盖equals方法,因此验证总是失败。

我尝试使用match,但失败消息根本没有帮助。

有没有更好或更正确的方法来做到这一点?

0 投票
1 回答
156 浏览

android - 将 MockK settings.properties 文件放在 Android 项目中的什么位置?

我们正在使用 MockK 对我们的 Android 项目进行单元测试。由于我们几乎总是使用mockk(relayed=true)我们希望在 docssettings.properties中将其设置为默认值。

它说:“在资源中创建 io/mockk/settings.properties 文件。”

好的,所以我认为把它放在这里是个好主意:src/main/res/io/mockk/settings.properties. 不幸的是,它不起作用。如果我删除relaxed=true单个模拟中的显式,所有测试都会失败。

那么,我在哪里实际放置设置文件?

0 投票
0 回答
1170 浏览

android - 如何用 mockk 模拟密封类?

我正在尝试模拟一个看起来像这样的密封类:

我希望能够做到以下几点:

但不幸的是,当我运行它时,它失败并出现以下错误:

io.mockk.MockKException:每个 { ... } 块内缺少调用。

我究竟做错了什么?

0 投票
1 回答
3144 浏览

kotlin - 相当于 doReturn(x).when(y)... 在 mockk 中?

我正在寻找一个相当于 doReturn(...).when(...).*

我正在编写一些涉及大量系统类的单元测试(测试合同),因此需要拦截我无法控制的方法并返回一些回调(代码中的方法最终会返回)。在模拟中,我可以做类似 doReturn(...).when(...).*

我无法在 mockK 中找到类似的东西。似乎 every{} 总是在回答或返回之前运行该块。

0 投票
1 回答
3249 浏览

android - 尝试将此 Mockito 测试转换为 Mockk 会导致错误

从 Mockito 到 Mockk 的以下转换存在问题。

所以我有这个

试着把它变成这个

给我以下错误

io.mockk.MockKException:没有找到答案:Observer(#4).onChanged(Loading(value=true))

0 投票
1 回答
1180 浏览

android - 协程单元测试 Mockk java.lang.AbstractMethodError at kotlinx.coroutines.CoroutineContextKt.newCoroutineContext

我想在 viewmodal 中对一个方法进行单元测试,但每次我都失败了,并且浏览了许多网站和堆栈答案,但没有一个有帮助。我只是想在我的 viewmodal 中测试一个方法,即 loadWeatherForeCast

我浏览了以下链接, 在单元测试中调用 Dispatchers.setMain() 时出错

https://android.jlelse.eu/mastering-coroutines-android-unit-tests-8bc0d082bf15

https://proandroiddev.com/mocking-coroutines-7024073a8c09

}

}

0 投票
2 回答
5565 浏览

kotlin - Kotlin:如何使用 JUnit5 和 Mockk 清理或重置模拟

在某些情况下,需要清理或重置测试用例之间的模拟。

将 Kotling 与 JUnit5 和 Mockk 一起使用,第一种方法应该是这样的:

@BeforeEach但是,与其在每个测试用例上声明模拟并初始化 SUT,不如使用类似这样的东西更清晰(可能不是更快) :

有没有更好(和更快)的方法来声明模拟和 sut 一次并在每次测试中重置或清除所有模拟?

0 投票
0 回答
152 浏览

android - 在 Android 中模拟私有对象

这是否可以使用 mockk 库进行模拟。

我有一堂课(删除了一些部分,试图简化问题)

我试图基本上模拟私有类 Fetcher 所做的工作。我以为我可以这样做:

但这并不能模拟私有实例。有没有办法模拟私有实例?我知道,如果我为私有 Fetcher 创建了一个接口,而是将其公开并注入类型,我可以模拟它。但是设置管理器的外部消费者不需要知道获取的逻辑。我不确定是否可以使用 mockk 模拟私有对象。

0 投票
3 回答
1329 浏览

android - 如何测试演示者 MVP Android

我试图了解我应该如何测试我的应用程序,我仍在学习mockito我也看到mockk但无法使其工作,这是我的Presenter

我应该如何测试这个主持人?我必须添加所有这些方法吗?

我试图这样做,mockito但我也可以使用mockk.

有些人告诉我,我必须做一些事情Schedulers并使用它,trampoline但我不清楚你们中的任何人都可以提供一个例子或解释一下吗?