mockito5.4.0单元测试(9) --调用同一个方法和参数依次返回不同的值thenReturn和thenThrow
mockito官方文档地址:https://www.javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#exact_verification
// mock一个对象
List singleMock = mock(List.class);
when(singleMock.get(20))
.thenThrow(new RuntimeException()) // mock第一次调用时抛出异常
.thenReturn("foo20"); // 设定第二次调用时,返回正常值:foo20
try {
//第一次调用: throws runtime exception:
singleMock.get(20);
} catch (Exception e) {
log.error("打印预期错误RuntimeException");
}
//第二次调用: 打印 "foo20"
System.out.println(singleMock.get(20));
//任何连续呼叫:Any consecutive call: prints "foo20" as well (last stubbing wins).
System.out.println(singleMock.get(20));
// mock第二个对象
List secondMock = mock(List.class);
when(secondMock.get(50))
.thenReturn("one", "two", "three");
log.info("secondMock第一次调用:{}", secondMock.get(50)); // secondMock第一次调用:one
log.info("secondMock第二次调用:{}", secondMock.get(50)); // secondMock第二次调用:two
log.info("secondMock第三次调用:{}", secondMock.get(50)); // secondMock第三次调用:three
end.

分类:
mockito单元测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2020-06-25 kafka2.5.0分区再均衡监听器java例子
2020-06-25 kafka2.5.0自定义分区器
2020-06-25 kafka2.5.0自定义数据序列化类
2020-06-25 kafka2.5.0生产者与消费者配置详解