gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 12:25:01 27 4
gpt4 key购买 nike

我想模拟一个字符串扩展。
我已经阅读了如何做到这一点的说明,通过使用

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

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

最佳答案

这是您的扩展功能的问题。它住在哪里?对于所有扩展函数,没有通用的方法。

我发现了很多String kotlin.text.StringsKt中的相关功能.我是怎么找到的?刚刚在IDEA中查看了一个String扩展函数的定义(源代码),发现@JvmName注释以了解确切的类名。

请尝试以下事情:

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

如果这没有帮助,您基本上需要找出您需要的类(class)。只需评论您需要的扩展功能。

关于kotlin - 如何模拟字符串扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53986955/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com