You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mockito中Mock的Comparable对象默认返回值为何是1而非0?

问题原因解析
  • Mockito对JDK核心接口(比如java.lang.Comparable)有内置的默认Stub逻辑,不会完全服从你手动设置的Stub规则。
  • 具体到compareTo方法:当你Mock实现了java.lang.Comparable的类时,Mockito会自动生成默认行为——如果比较的对象是同一个Mock实例,返回0;否则返回1。这时候你手动写的when(mock.compareTo(any())).thenReturn(0)会被这个内置逻辑覆盖,所以实际返回1,导致测试失败。
  • 而你自定义的Comparable接口不属于JDK核心类范畴,Mockito没有针对它的特殊内置处理,所以会严格按照你设置的Stub返回0,测试自然通过。

内容的提问来源于stack exchange,提问作者walsh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 20:12:00