【问题标题】:Mockito unfinished stubbing exception detected ONLY in Intellij Debugger仅在 Intellij 调试器中检测到 Mockito 未完成的存根异常
【发布时间】:2021-12-06 02:51:13
【问题描述】:

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

CustomerChoiceRepository 是一个普通的 Spring Boot JPA 存储库,这里用 @Mock 模拟。

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

整个错误信息是:

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

这只是在 IntelliJ 调试器中检测到的,因此测试失败只有在我调试它时。

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

这是一个错误吗?这是不是因为我对 Mockito 的内部不是特别了解而无法理解的东西?

【问题讨论】:

标签: spring-boot debugging intellij-idea mockito stub


【解决方案1】:

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

检查您的调试器设置

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

见:

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

见:

【讨论】:

  • 先生,非常感谢。你帮我省了很多麻烦。
猜你喜欢
  • 1970-01-01
  • 2014-12-06
  • 2020-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多