mockitio 如何验证函数输出.

返回值已经很明确了. 那么如何验证往下层(下游)输出的值呢?

使用 ArgumentCaptor

https://static.javadoc.io/org.mockito/mockito-core/3.1.0/org/mockito/Mockito.html#15

ArgumentCaptor<Person> argument = ArgumentCaptor.forClass(Person.class);

Mockito.verify(ldbIntegrationServiceImpl,Mockito.times(2)).put(argument1.capture(), argument2.capture(), argument3.capture(), argument4.capture());

Assert.assertEquals(keyContent, argument2.getValue());

多次调用

如果想获取第一次函数调用的参数. argument1.getAllValues().get(0)

如果是想获取第三次的结果argument2.getAllValues().get(2)

泛型,类型不同

如果接口是泛型,每次对象都不同,那么就把forClass(Object.class) 或者 参考 【Java】Mockito捕获多次调用的方法的参数 来实现.

异常

1. 遇到这种问题:

But was 2 times. Undesired invocation:  

说明总共执行了两次. 而不是一次,增加Mockito.times(2),Mockito.verify(ldbIntegrationServiceImpl,Mockito.times(2))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值