问题标签 [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 投票
1 回答
522 浏览

mockk - Calling a function of a spyk'd data class

I have a data class A with a function as follows:

I attempt the following mock in my test:

When I run a test written like this it fails with a NullPointerException on the line fun foo... in the data class.

Am I doing anything wrong or is this a bug in MockK?

0 投票
2 回答
3119 浏览

kotlin - 如何使用 mockk 模拟新对象

我正在尝试使用 mockk 编写单元测试。

我试图弄清楚如何模拟对象的新实例。

例如,使用 PowerMockito 我们将编写:

如果我的测试的预期结果是 mockDog,我希望能够断言它等于我的实际结果:

我将如何使用 mockk 完成此任务?

提前致谢。

0 投票
5 回答
10802 浏览

kotlin - 你如何 Mockk 一个 Kotlin 顶级函数?

Mockk允许模拟静态函数,但如何模拟 Kotlin 顶级函数?

例如,如果我有一个名为 的 Kotlin 文件HelloWorld.kt,我如何模拟该sayHello()函数?


你好世界.kt

0 投票
1 回答
3141 浏览

android - 延迟后模拟验证

verify延迟后 最好的方法是什么?

例如,我进行了一个调用postDelayed其他对象的方法调用,而我要验证的调用发生在该run()块中。

例如,使用 Mockito,您可以执行以下操作:

Mockk 有惯用的或现有的方式吗?

0 投票
2 回答
6570 浏览

kotlin - java.lang.IllegalStateException:@MockK 时找不到 sun.misc.Unsafe

使用 MockK 创建模拟时遇到问题。我已经尝试过使用没有 Kotlin 1.3 的 MockK 的 kotlin 1.2.* 版本,但它也没有帮助。

我该如何解决这个问题?这是因为 OpenJDK 11 的原因吗?

爪哇版:

构建.gradle

历史客户:

测试:

当我运行此测试时,我收到此错误

0 投票
1 回答
1630 浏览

unit-testing - MockK中的`verifySequence`和`verifyOrder`有什么区别?

在 MockK 库的指南中,该示例并没有为我清除这一点。以下是文档中的示例:

0 投票
1 回答
2080 浏览

kotlin - 如何使用 mockk 模拟协程的执行?

我正在尝试使用该mockk框架在我的一个单元测试中设置一个模拟,该单元测试执行如下挂起函数:

mock.execute()但是,如果我在启动的协程范围内调用,我发现测试会无限期挂起。如果我task()直接在启动范围内调用,则测试运行良好。

尽管mockk 文档确实谈到了一些关于 coroutine mocking 的内容,但我找不到任何文档或示例来展示如何执行 coroutines 以响应在 mock 上调用挂起函数。

这是一个 SSCCE 展示了这一点:

使用以下依赖项:

0 投票
3 回答
2955 浏览

http - 如何在 kotlin 中使用 mockk 和 fuel 模拟 POST 请求?

我正在使用燃料库在 kotlin 中发出一些 http 请求。我想使用 mockk 库测试该代码。我想出了如何模拟http请求。下面是代码。

我不喜欢any()这里。我想具体说明一下http方法和url。我想根据被调用的 url 和正在使用的 http 方法返回特定的响应。

我想可能是我可以做以下

但我收到以下错误。

我在这里想念什么?

0 投票
8 回答
38190 浏览

android - 模拟每个 { ... } 块内的缺失呼叫

我一直试图用 mockk 模拟一些东西:

我在 gradle 上有以下设置

所以我正在androidTest为 SDK 编写一个并尝试模拟Foo.kt. Foo 类没有什么不寻常的,只是直接class Foo(private val someParams) {

所以使用androidTestImplementation "io.mockk:mockk-android:1.8.13"模拟去:

我总是遇到以下崩溃:

还试图收集信息:

  • 在 JVM 测试文件夹中运行。它被嘲笑没有问题,但我无法以 JVM 运行我的测试
  • 在模块androidTest内部运行。Foo遇到同样的崩溃
  • 使用 mockkClass(Foo::class)。发生了一些崩溃
  • 使用注释@MockKMockKAnnotations.init(this). 发生了一些崩溃。
  • Log.devery {line 和 inside方法之前添加getData(),似乎在模拟设置期间调用了类中的实际真实方法。这对我来说似乎非常奇怪。

知道这里出了什么问题吗?

编辑:

根据要求,完整代码。我目前正在研究一个孤立的项目以尝试隔离错误,所以 Foo 只是:

然后我有FooTest androidTest

0 投票
1 回答
1409 浏览

android - 如何使用可为空的参数模拟私有方法

我使用 MockK 进行单元测试。我如何使用可为空和不可为空的参数来模拟私人通话?

我的方法:

已经尝试过:

一切都返回错误: