为什么 Kotlin 中的模拟启动速度这么慢?

Paw*_*ski 8 mocking mockito kotlin mockk

谁能告诉我为什么在 Kotlin 中模拟“启动”这么慢?

使用模拟的第一个测试需要几秒钟(使用mockk需要2-3秒,使用Mockito需要1-2秒)。其余的需要几毫秒。

在 Java 中使用 Mockito 就没有这样的开销。

重现方式:使用mockk编写两个测试(可以是同一个测试类中的两个方法)。使用mockk 创建模拟的第一个测试需要 2-5 秒,下一个测试将在几毫秒内运行。和用IntelliJ或者Gradle编译,效果是一样的。

还有其他人有这个问题吗?

小智 6

我们遇到了完全相同的问题:mock 启动速度慢。问题似乎出在mockk在后台使用的ByteBuddy库:https://github.com/mockk/mockk/issues/262#issuecomment-468334044

刚刚确认最新的mock 1.10.2中仍然存在该问题。因此不得不使用mockito和mockito-kotlin。