问题标签 [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 回答
3725 浏览

kotlin - 如何模拟字符串扩展?

我想模拟一个字符串扩展。
我已经阅读了如何使用的说明

或者

但它一直在说

可能我在模拟错误的文件,但我似乎无法正确模拟文件名。任何帮助表示赞赏:-D

0 投票
1 回答
4360 浏览

java - Mockk - ClassCastException when mocking final class that implements multiple interfaces

I'm trying to use a mock of this Java class:

So I've created a mock like so:

in order to test this bit of Java code:

and I'm getting the following error when I try and use it

Test class here:

Any ideas how to fix this ?

0 投票
0 回答
62 浏览

android - 如何模拟类用于 JUnit 测试

我怎么能嘲笑Class<Out T>?我得到了错误:当我尝试模拟并在其中使用它时,Mockito match any class arguments

whenever(mockClass.method(mockClass)).thenReturns(...)

any(Class::class)或者any(Class::class.java)也没有帮助。

0 投票
1 回答
996 浏览

kotlin - MockK 模拟方法返回接口未来

您好我有以下问题。我试图模拟注入执行器的调用以立即执行给定的 Callable。稍后在 Callable 内部调用的方法的测试参数被捕获并断言参数。模拟示例见下文。

Maven 3,jdk 10-slim,mock 1.9

后来我将 Callable 接口更改为实现,这是我在测试类中创建的,但又遇到了另一个异常。与上述异常相同的代码是

这是submit方法的返回类型。

我嘲笑的方法是错误的吗?

0 投票
2 回答
14915 浏览

android - 使用 mockk 匹配任何可变参数

我正在尝试模拟 Android 上下文以从资源 id 返回一个字符串。但是我无法将存根与调用匹配,我认为这是因为可变参数。但是我是新手,所以我可能会错过一些非常容易的事情。

我以这种方式模拟上下文:

但是在对象上调用 getString 时会引发以下异常:

如果它很重要,我在被测类中调用类似于此的函数。formatArgs 可能为空,但不必:

知道如何解决这个问题吗?

您可以在此处检查项目并重现异常:Github Project

0 投票
1 回答
6506 浏览

kotlin - Kotlin MockK:io.mockk.MockKException:找不到答案

这是我的代码片段:

我正在使用 JUnit5(木星)。我得到的例外是:

io.mockk.MockKException: no answer found for: ServerRequest(#1).cookies()

这很奇怪,因为如果我理解relaxed正确,我的 ServerRequest 实例应该总是有一些value

为什么在我的情况下没有?

0 投票
2 回答
3378 浏览

android - 如何使用 mockk 模拟 Build.VERSION.SDK_INT

如何在 mockk 中模拟 Build.VERSION.SDK_INT?

我做了以下事情:

io.mockk.MockKException: Missing calls inside every { ... } block.一旦代码遇到问题,我最终会得到every

0 投票
1 回答
225 浏览

unit-testing - 如何验证对用作委托(委托)的参数进行的调用?

我有一个A像下面这样的类:

我现在想验证B#extensionFunction正在调用。我怎么做?

我可以B#memberFunction这样验证:

但是,相同的测试B#extensionFunction并不能解决问题。相反,我得到一个java.lang.AssertionError. 验证失败,因为调用没有发生。(请注意,您必须使用静态模拟(使用mockkStatic函数)才能验证扩展函数。)

作为参考,使用的库:

  • org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.11
  • junit:junit:4.12
  • io.mockk:mockk:1.9
0 投票
0 回答
595 浏览

android - 如何在未来的测试中使用 mockk 模拟 Bitmap 而不会影响 bitmap.compress

如何在以后的测试中模拟位图而不破坏位图?让我们看下面的简化示例...

假设可能测试类如下......

testSaveBitmapToTempDirectoryWithSuccess()如果我单独运行它会通过。如果我包含模拟 Bitmap ( val mockBitmap: Bitmap = mockk()) 的行,那么testSaveBitmapToTempDirectoryWithSuccess()当我一起运行所有测试时会失败。bitmap.compress()投掷NoSuchMethodException: checkRecycled

类似地,如果另一个测试类模拟了一个位图并与这个测试类作为一个组运行,那么testSaveBitmapToTempDirectoryWithSuccess()由于同样的原因而失败。

我该如何解决这种情况?在一些测试中,我想要一个模拟位图。在其他测试中,我想压缩一个真实的。

0 投票
0 回答
870 浏览

android - 如何使用 MockK(Mock 框架)模拟 RxKotlin 的可完成性

对于 kotlin android 中的单元测试,我一直在使用模拟框架 MockK。使用过 RxKotlin。我使用 Completable observable 来通知 ViewModel API 的状态。根据 Completable,状态将在 ViewModel 中更新为成功或失败。我的问题是如何使用 MockK 模拟 RxKotlin 的可完成观察,并根据模拟的可完成检查单元测试函数中的状态。

片段

未知

如何使用可完成的返回模拟函数调用订阅 testobserver