随笔 - 239  文章 - 0  评论 - 29  阅读 - 69万

mockito5.4.0单元测试(6) --按顺序校验mock对象的调用顺序--InOrder对象的使用

mockito官方文档地址: https://www.javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#exact_verification

 

按顺序验证是灵活的——您不必一个接一个地验证所有的交互,只需依次测试那些您感兴趣的交互即可。
此外,您可以创建一个InOrder对象,仅传递与顺序验证相关的mock。

// mock一个对象
List singleMock = mock(List.class);

// 使用mock对象来操作add
singleMock.add("a");
singleMock.add("b");
singleMock.add("c");
singleMock.add("d");
singleMock.add("e");

// InOrder可以保证接下来的校验是按照顺序来校验的,也就是a是第一个被添加的,cd是在之后被添加的
InOrder inOrder = inOrder(singleMock);

inOrder.verify(singleMock).add("b");  // 我们可以从b开始验证,也就是可以直接跳过a
inOrder.verify(singleMock).add("d");  // 但是接下来的验证就必须是b之后的值,也就是c,d之类的,否则InOrder就会起作用,就会报错
inOrder.verify(singleMock).add("b");  // 这一行验证了b,由于b在上一行d之前了,所以执行到这一行会报错,因为违反了InOrder的顺序

 

end.

posted on   梦幻朵颜  阅读(204)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2021-06-20 mysql5.7字段设计需要为非null,尤其是索引列,原理讲述

点击右上角即可分享
微信分享提示