仅在 Intellij 调试器中检测到 Mockito 未完成的存根异常

ng.*_*bie 0 debugging stub intellij-idea mockito spring-boot

仅当我尝试通过 IntelliJ 调试器调试测试时才会出现此问题。当我只是简单地运行测试时,这种情况不会发生。

CustomerChoiceRepository 是一个普通的 Spring Boot JPA 存储库,此处使用@Mock.

在此输入图像描述

当此行在调试器中执行时,我在变量的监视部分中收到以下错误:

在此输入图像描述

整个错误信息是:

Method threw 'org.mockito.exceptions.misusing.UnfinishedStubbingException' exception. Cannot evaluate com.item.repository.jpa.CustomerChoiceRepository$MockitoMock$1318657964.toString()
Run Code Online (Sandbox Code Playgroud)

同样,这仅在 IntelliJ 调试器中检测到,因此当我调试它时测试才会失败。

所以我的问题是:这里发生了什么?

这是一个错误吗?这是我无法理解的事情,因为我不太了解 Mockito 的内部结构吗?

Les*_*iak 5

您的 IntelliJ 在存根期间在模拟上调用 toString,这会导致异常。

检查您的调试器设置

默认情况下,IntelliJ 调用toString调试器窗口中的对象,但仅调用覆盖该方法的对象。此行为是可自定义的,目前在 中Preferences -> Build Tools -> Debugger -> Data Views -> Java -> Enable 'toString' object view,但设置可能因 IDE 版本而异。

看:

在存根期间不要调用模拟对象上的方法

看: