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

Mockito verify校验方法未执行时times(0)不生效问题求助

Mockito校验方法未执行不生效问题排查方案

Mockito原生支持times(0)校验指定方法未调用,校验未生效通常是以下原因导致:

  • 校验目标不是Mock/Spy对象
    verify仅支持作用于Mockito生成的Mock对象、或@Mock/@Spy注解标注且完成初始化的对象,普通业务实例调用verify不会生效。如果使用注解声明Mock对象,需确保测试类添加了JUnit适配配置:JUnit5环境加@ExtendWith(MockitoExtension.class)注解,JUnit4环境加@RunWith(MockitoJUnitRunner.class)注解,也可以手动执行MockitoAnnotations.openMocks(this)完成Mock对象初始化。
  • 方法入参不匹配
    如果待校验的test()方法存在入参,verify中传入的入参与业务代码实际调用的入参不一致时,会导致times(0)校验不触发。如果不需要校验入参具体值,可以使用Mockito内置的任意匹配器,例如any()、anyString()、anyLong()等。
    示例:若test()方法需要传入String类型入参,写法调整为verify(updateRule, times(0)).test(anyString())即可。
  • 校验执行顺序错误
    verify校验必须在业务逻辑执行完成后调用,若先执行校验再执行业务工作流,自然无法覆盖到后续的方法调用。

另外你也可以使用Mockito提供的可读性更高的等价写法替代times(0):

verify(updateRule, never()).test();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:54:06