如何模拟字符串扩展



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

mockStatic("kotlin.String")

mockkStatic("kotlin.kotlin_builtins")

但它一直在说

Caused by: io.mockk.MockKException: Can't instantiate proxy for class kotlin.String
at io.mockk.impl.instantiation.JvmMockFactory.newProxy(JvmMockFactory.kt:64)
at io.mockk.impl.instantiation.AbstractMockFactory.newProxy$default(AbstractMockFactory.kt:29)
at io.mockk.impl.instantiation.AbstractMockFactory.spyk(AbstractMockFactory.kt:92)
at io.floriday.pdfgeneratorapi.integration.TradeItemListenerTest.<init>(TradeItemListenerTest.kt:131)
... 18 more
Caused by: io.mockk.proxy.MockKAgentException: Failed to create proxy for class java.lang.String.
class java.lang.String is one of excluded classes
at io.mockk.proxy.jvm.ProxyMaker.throwIfNotPossibleToProxy(ProxyMaker.kt:128)
at io.mockk.proxy.jvm.ProxyMaker.proxy(ProxyMaker.kt:28)
at io.mockk.impl.instantiation.JvmMockFactory.newProxy(JvmMockFactory.kt:34)
... 21 more

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

这是对扩展函数的问题。它驻留在哪里?没有适用于所有扩展函数的通用方法。

我在kotlin.text.StringsKt中找到了很多String相关的功能。我是如何找到它的?我刚刚转到 IDEA 中一个字符串扩展函数的定义(源代码),并找到了@JvmName注释以了解确切的类名。

请尝试以下操作:

mockkStatic("kotlin.text.StringsKt") {
    ...
}

如果这没有帮助,你基本上需要找出你需要什么类。只需评论您需要什么扩展功能。

最新更新