MockK 导致 StackOverflowException
MockK causing a StackOverflowException
如题!我不能 运行 任何使用 MockK 的测试,因为它们最终会在初始化期间抛出 WhosebugError。
举个例子,这是我的测试之一 类:
@ExtendWith(MockKExtension::class)
class DBSequencesServicesTest {
private lateinit var service: DBSequencesService
@MockK
private lateinit var sequencesRepo: DBSequencesRepo
@BeforeTest
fun initService() {
service = DBSequencesServiceImpl(sequencesRepo)
}
@Test
fun `should return value 0 if given a non-existent sequence`() {
every { sequencesRepo.findById(any()) } returns Optional.empty()
assertEquals(0, service.nextValue("test"))
}
@Test
fun `should return next value if given an existing sequence`() {
every { sequencesRepo.findById("test") } returns Optional.of(DBSequence("test", 1))
every { sequencesRepo.save(any()) } returnsArgument 0
assertEquals(1, service.nextValue("test"))
}
@Test
fun `successive calls should return incrementing values`() {
every { sequencesRepo.findById("test") } returnsMany listOf(
Optional.of(DBSequence("test", 0)),
Optional.of(DBSequence("test", 1)),
Optional.of(DBSequence("test", 2))
)
every { sequencesRepo.save(any()) } returnsArgument 0
for (i in 0L..2L) {
assertEquals(i, service.nextValue("test"))
}
}
}
这是产生的堆栈跟踪,一旦模式变得明显就被切断:
Exception in thread "Test worker" java/lang/WhosebugError
at io/mockk/proxy/jvm/dispatcher/JvmMockKDispatcher.get (JvmMockKDispatcher.java:16)
at java/lang/Object.hashCode (Object.java:119)
at java/util/HashMap.hash (HashMap.java:339)
at java/util/HashMap.get (HashMap.java:557)
at sun/reflect/Reflection.filterMethods (Reflection.java:291)
at java/lang/Class.getMethodHelper (Class.java:1265)
at java/lang/Class.getMethod (Class.java:1191)
at java/lang/Object.hashCode (Object.java:119)
at java/util/HashMap.hash (HashMap.java:339)
at java/util/HashMap.get (HashMap.java:557)
at sun/reflect/Reflection.filterMethods (Reflection.java:291)
at java/lang/Class.getMethodHelper (Class.java:1265)
at java/lang/Class.getMethod (Class.java:1191)
at java/lang/Object.hashCode (Object.java:119)
at java/util/HashMap.hash (HashMap.java:339)
at java/util/HashMap.get (HashMap.java:557)
at sun/reflect/Reflection.filterMethods (Reflection.java:291)
at java/lang/Class.getMethodHelper (Class.java:1265)
at java/lang/Class.getMethod (Class.java:1191)
at java/lang/Object.hashCode (Object.java:119)
at java/util/HashMap.hash (HashMap.java:339)
at java/util/HashMap.get (HashMap.java:557)
...
然后抛出 MessageIOException:
org.gradle.internal.remote.internal.MessageIOException: Could not read message from '/127.0.0.1:52775'.
at org.gradle.internal.remote.internal.inet.SocketConnection.receive(SocketConnection.java:94)
at org.gradle.internal.remote.internal.hub.MessageHub$ConnectionReceive.run(MessageHub.java:270)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl.run(ManagedExecutorImpl.java:48)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.lang.Thread.run(Thread.java:821)
据我所知,我已经正确设置了 MockK,并且正在根据他们的指南使用它:
dependencies {
// Other dependencies go here...
testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
}
testImplementation("org.springframework.security:spring-security-test")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit5:1.4.10")
testImplementation("io.mockk:mockk:1.10.2")
testImplementation("com.ninja-squad:springmockk:2.0.3")
}
是什么导致了该异常,我该如何解决?如果需要更多上下文,请告诉我。
编辑:当 CircleCI 运行 使用图像 cimg/openjdk:8.0
进行测试时,不会发生相同的异常
编辑 2:添加了 DBSequence
和 DBSequenceRepo
的定义
@Document(collection = "dbSequences")
data class DBSequence(
@Id var name: String,
var nextVal: Long
) {
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as DBSequence
if (name != other.name) return false
return true
}
override fun hashCode(): Int {
return name.hashCode()
}
}
interface DBSequencesRepo : MongoRepository<DBSequence, String>
有一个 open issue in mockk 与问题相关。该错误在 JVM 变体的子集上重现。我想您在本地安装了这样的 JVM 之一。作为解决方法,您可以尝试在本地安装不同的 JVM 发行版。 “AdoptOpenJDK: 1.8.0_222 热点”根据上面的 link 似乎没问题。
我们今天在本地机器上遇到了类似的问题。我们正在尝试将 MockK 与 vert.x 和 Kotlin 一起用于后端服务。
我们的开发机器是带有 OpenJDK 11.0.9 的 MacO,并且由于某些奇怪的原因,有时运行没有问题,有时会保持活动状态直到抛出测试超时并显示以下消息:
per (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/
当我们在Idea project settins和Gradle中将JDK设置为8.*时,会出现一个测试通过和一个测试失败的情况,并出现与上述相同的错误。
我不是 MockK 库的专家,但我很想将它与 mockito-kotlin 进行比较。
IMO 库在与 JDK.
的最新版本一起使用时存在一些反射问题
对我来说,我遇到了以下错误:
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)`
事实证明 mockK 库在某些版本的 Java 11(特别是 11.0.10.j9-adpt
)
上不起作用
如果您使用的是 sdkman,请使用 11.0.10.hs-adpt
版本
| | 11.0.10.j9 | adpt | | 11.0.10.j9-adpt
| >>> | 11.0.10.hs | adpt | installed | 11.0.10.hs-adpt
如题!我不能 运行 任何使用 MockK 的测试,因为它们最终会在初始化期间抛出 WhosebugError。
举个例子,这是我的测试之一 类:
@ExtendWith(MockKExtension::class)
class DBSequencesServicesTest {
private lateinit var service: DBSequencesService
@MockK
private lateinit var sequencesRepo: DBSequencesRepo
@BeforeTest
fun initService() {
service = DBSequencesServiceImpl(sequencesRepo)
}
@Test
fun `should return value 0 if given a non-existent sequence`() {
every { sequencesRepo.findById(any()) } returns Optional.empty()
assertEquals(0, service.nextValue("test"))
}
@Test
fun `should return next value if given an existing sequence`() {
every { sequencesRepo.findById("test") } returns Optional.of(DBSequence("test", 1))
every { sequencesRepo.save(any()) } returnsArgument 0
assertEquals(1, service.nextValue("test"))
}
@Test
fun `successive calls should return incrementing values`() {
every { sequencesRepo.findById("test") } returnsMany listOf(
Optional.of(DBSequence("test", 0)),
Optional.of(DBSequence("test", 1)),
Optional.of(DBSequence("test", 2))
)
every { sequencesRepo.save(any()) } returnsArgument 0
for (i in 0L..2L) {
assertEquals(i, service.nextValue("test"))
}
}
}
这是产生的堆栈跟踪,一旦模式变得明显就被切断:
Exception in thread "Test worker" java/lang/WhosebugError
at io/mockk/proxy/jvm/dispatcher/JvmMockKDispatcher.get (JvmMockKDispatcher.java:16)
at java/lang/Object.hashCode (Object.java:119)
at java/util/HashMap.hash (HashMap.java:339)
at java/util/HashMap.get (HashMap.java:557)
at sun/reflect/Reflection.filterMethods (Reflection.java:291)
at java/lang/Class.getMethodHelper (Class.java:1265)
at java/lang/Class.getMethod (Class.java:1191)
at java/lang/Object.hashCode (Object.java:119)
at java/util/HashMap.hash (HashMap.java:339)
at java/util/HashMap.get (HashMap.java:557)
at sun/reflect/Reflection.filterMethods (Reflection.java:291)
at java/lang/Class.getMethodHelper (Class.java:1265)
at java/lang/Class.getMethod (Class.java:1191)
at java/lang/Object.hashCode (Object.java:119)
at java/util/HashMap.hash (HashMap.java:339)
at java/util/HashMap.get (HashMap.java:557)
at sun/reflect/Reflection.filterMethods (Reflection.java:291)
at java/lang/Class.getMethodHelper (Class.java:1265)
at java/lang/Class.getMethod (Class.java:1191)
at java/lang/Object.hashCode (Object.java:119)
at java/util/HashMap.hash (HashMap.java:339)
at java/util/HashMap.get (HashMap.java:557)
...
然后抛出 MessageIOException:
org.gradle.internal.remote.internal.MessageIOException: Could not read message from '/127.0.0.1:52775'.
at org.gradle.internal.remote.internal.inet.SocketConnection.receive(SocketConnection.java:94)
at org.gradle.internal.remote.internal.hub.MessageHub$ConnectionReceive.run(MessageHub.java:270)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl.run(ManagedExecutorImpl.java:48)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.lang.Thread.run(Thread.java:821)
据我所知,我已经正确设置了 MockK,并且正在根据他们的指南使用它:
dependencies {
// Other dependencies go here...
testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
}
testImplementation("org.springframework.security:spring-security-test")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit5:1.4.10")
testImplementation("io.mockk:mockk:1.10.2")
testImplementation("com.ninja-squad:springmockk:2.0.3")
}
是什么导致了该异常,我该如何解决?如果需要更多上下文,请告诉我。
编辑:当 CircleCI 运行 使用图像 cimg/openjdk:8.0
编辑 2:添加了 DBSequence
和 DBSequenceRepo
@Document(collection = "dbSequences")
data class DBSequence(
@Id var name: String,
var nextVal: Long
) {
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as DBSequence
if (name != other.name) return false
return true
}
override fun hashCode(): Int {
return name.hashCode()
}
}
interface DBSequencesRepo : MongoRepository<DBSequence, String>
有一个 open issue in mockk 与问题相关。该错误在 JVM 变体的子集上重现。我想您在本地安装了这样的 JVM 之一。作为解决方法,您可以尝试在本地安装不同的 JVM 发行版。 “AdoptOpenJDK: 1.8.0_222 热点”根据上面的 link 似乎没问题。
我们今天在本地机器上遇到了类似的问题。我们正在尝试将 MockK 与 vert.x 和 Kotlin 一起用于后端服务。
我们的开发机器是带有 OpenJDK 11.0.9 的 MacO,并且由于某些奇怪的原因,有时运行没有问题,有时会保持活动状态直到抛出测试超时并显示以下消息:
per (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/
当我们在Idea project settins和Gradle中将JDK设置为8.*时,会出现一个测试通过和一个测试失败的情况,并出现与上述相同的错误。
我不是 MockK 库的专家,但我很想将它与 mockito-kotlin 进行比较。 IMO 库在与 JDK.
的最新版本一起使用时存在一些反射问题对我来说,我遇到了以下错误:
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)
at jdk/internal/reflect/Reflection.filterMethods (java.base@9/Reflection.java:276)
at java/lang/Class.getMethodHelper (java.base@9/Class.java:1457)
at java/lang/Class.getMethod (java.base@9/Class.java:1361)
at java/lang/Object.hashCode (java.base@9/Object.java:122)
at java/util/HashMap.hash (java.base@9/HashMap.java:339)
at java/util/HashMap.get (java.base@9/HashMap.java:552)`
事实证明 mockK 库在某些版本的 Java 11(特别是 11.0.10.j9-adpt
)
如果您使用的是 sdkman,请使用 11.0.10.hs-adpt
版本
| | 11.0.10.j9 | adpt | | 11.0.10.j9-adpt
| >>> | 11.0.10.hs | adpt | installed | 11.0.10.hs-adpt