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

Mockito中被测对象内生成参数时如何验证方法调用?

解决方案

你可以用Mockito的参数匹配器来实现精准验证,不用全用any()。具体做法是:对需要精确匹配的参数用eq()包裹,对不关心的日期参数用any(Date.class)匹配任意Date实例。

修改后的验证代码如下:

verify(updateLockedAccountStatusMock, times(1)).update(eq(1), eq(3), eq(true), any(Date.class));

原理说明

  • eq(1)、eq(3)、eq(true)会精确匹配方法调用时传入的对应参数值,确保这三个参数完全符合预期;
  • any(Date.class)会匹配任意Date对象,不管被测代码里生成的Date实例是什么时候创建的,都能通过验证;
  • 这种方式既能精准锁定你要验证的那次调用(避免和其他地方的调用混淆),又不用放弃对关键参数的校验。

如果你的项目用的是Java 8及以上的日期API(比如LocalDateTime),只需要把any(Date.class)换成any(LocalDateTime.class)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:22:03