首页 > 其他分享 >mockito5.4.0单元测试(9) --调用同一个方法和参数依次返回不同的值thenReturn和thenThrow

mockito5.4.0单元测试(9) --调用同一个方法和参数依次返回不同的值thenReturn和thenThrow

时间:2023-06-25 10:37:38浏览次数:46  
标签:调用 secondMock get -- mockito5.4 mockito 单元测试 singleMock mock

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.

 

标签:调用,secondMock,get,--,mockito5.4,mockito,单元测试,singleMock,mock
From: https://www.cnblogs.com/zhuwenjoyce/p/17502291.html

相关文章

  • 大端模式与小端模式简介
    转载文章:《数据在内存中存储的方式:大端模式与小端模式》什么是大端模式,什么是小端模式?所谓的大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低......
  • 语义版本号管理规范尝试
    1.0.0-alpha主版本号、次版本号、修订号,先行版本号稳定上线后,变为1.0.0 (一)问题或简单需求实现有新问题修改、或简单需求(不涉及新增页面、接口),则增加修订号(一个或多个问题、简单需求)1.0.1-test.1->1.0.1-test.2...每次开发有修改bug,可以提交修改内容。等问题在测试环境......
  • Midjouney限时免费体验
    前言Midjourney是一个人工智能程序,可根据文本生成图像,目前架设在Discord频道上。于2022年7月12日进入公开测试阶段,使用者可通过Discord的机器人指令进行操作,可以创作出很多的图像作品。AI绘图前景AI绘图前景如何?自动化程度高:AI绘图可以通过算法和数据自动化生......
  • 金鸡湖赛龙舟 | 璞华龙舟队飞舟竞渡,荣获“最佳团队拼搏奖”!
    端阳佳节可人天,溪北溪南竞斗船。金鼓声喧齐喝彩,锦标争夺看谁先。 ——《漳州四时竹枝词》 今天(6月22日),2023中国电信"hello5G"杯金鸡湖端午龙舟赛在金鸡湖城市广场举行。一年一度的龙舟赛,已经成为展示苏州拼搏精神、彰显城市魅力的舞台。简短的放龙仪式后,龙舟大赛拉开了......
  • 字节码原理浅析 —— 基于栈的执行引擎
    字节码是运行在JVM上的,为了能弄懂字节码,需要对JVM的运行原理有所了解。这篇文章将以栈帧为切入点理解字节码在JVM上执行的细节。虚拟机虚拟机常见的实现方式有两种:Stackbased的和Registerbased。比如基于Stack的虚拟机有HotspotJVM、.netCLR,这种基于Stack实现......
  • python测试
      importosimportshutildefcheck_dir_exist(dir):#如果目标路径不存在原文件夹的话就创建ifnotos.path.exists(dir):os.makedirs(dir)defremove_dir(dir):#如果目标路径存在原文件夹的话就先删除ifos.path.exists(dir......
  • 深入Python网络编程:从基础到实践
    Python,作为一种被广泛使用的高级编程语言,拥有许多优势,其中之一就是它的网络编程能力。Python的强大网络库如socket,requests,urllib,asyncio,等等,让它在网络编程中表现优秀。本文将深入探讨Python在网络编程中的应用,包括了基础的socket编程,到高级的异步IO网络编程,以及我们如何......
  • k8s 创建nginx
    1、在kubenetes集群中创建一个pod创建nginx,拉取镜像kubectlcreatedeploymentnginx--image=nginx2、查看镜像是否下载成功kubectlgetpodstatus为running表示拉取完成 3、暴露Nginx端口kubectlexposedeploymentnginx--port=80--type=NodePort4、查看Nginx端口......
  • pgcat 基于rust 开发类似pgbouncer 的数据库链接池以及proxy 工具
    pgcat是postgresml团队开源的,pg链接池以及proxy工具,包含了不少特性特性事物pool,类似pgbouncer,对于异常客户端以及遗弃事物处理做了提升sessionpool类似pgbouncer多线程运行时读查询负载均衡,对于primary以及replicas进行自动负载均衡故障转移,支持健康检查admin统计数据库,类......
  • 错误C3861 “_CrtDbgReportW”: 找不到标识符
    //crt_crtdbgreport.c#include<crtdbg.h>intmain(intargc,char*argv[]){#ifdef_DEBUG_CrtDbgReport(_CRT_ASSERT,__FILE__,__LINE__,argv[0],NULL);#endif}解决方法:用release版,或者把debug版本中预编译头的_debug去掉,这样在函数执行的时候就不会出现这......