mockito5.4.0单元测试(7) --预先mock返回对象,when然后thenReturn
mockito官方文档地址: https://www.javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#30
【case 1】
LinkedList mockedList = mock(LinkedList.class);
mockedList.add("这个字符大于5");
// get任何Int对象都返回"element"
when(mockedList.get(anyInt())).thenReturn("element");
//只要符合argThat里的表达式,那么调用contains方法都返回true
when(mockedList.contains(eq("123456"))).thenReturn(true); // 使用框架已封装好的eq
when(mockedList.contains(anyInt())).thenReturn(true); // 使用框架已封装好的anyInt()
when(mockedList.contains(argThat(arg -> "aa".equals(arg)))).thenReturn(true); // 自定义实现逻辑:"aa".equals(arg)
// 以下这一行会打印:"element"
System.out.println(mockedList.get(999));
// 校验上面的代码中是否调用过get int的方法
verify(mockedList).get(anyInt());
boolean contains1 = mockedList.contains("23"); // 这里不符合上面argThat的表达式,所以会返回false
boolean contains2 = mockedList.contains("aa"); // 这里符合上面argThat的表达式,所以会返回true
log.info("contains1 = {}, contains2 = {}", contains1, contains2); // contains1 = false, contains2 = true
// 判断list里是否包含大于5位长度的对象
verify(mockedList).add(argThat(someString -> someString.toString().length() > 5));
end.

分类:
mockito单元测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2020-06-21 kafka2.5.0架构硬件选择参考因素
2020-06-21 kafka2.5.0详解核心配置文件server.properties
2020-06-21 kafka2.5.0 主题Topic
2020-06-21 kafka2.5.0基本命令