Spring boot 整合mockito,java程序员面试笔试真题与解析

本文通过实例代码详细介绍了如何在Spring Boot项目中使用Mockito进行单元测试,包括模拟对象、模拟方法调用的返回值、参数匹配、方法调用次数的验证等关键知识点,是Java后端开发者面试准备的重要参考资料。
摘要由CSDN通过智能技术生成

}

@Test

public void testUpdateNotFind() throws Exception {

boolean result = personService.update(2, “new name”);

assertFalse(“must true”, result);

//验证是否执行过一次getPerson(1)

verify(mockDao, times(1)).getPerson(eq(1));

//验证是否执行过一次update

verify(mockDao, never()).update(isA(Person.class));

}

}

Mockito使用示例

===========

模拟对象


// 模拟LinkedList 的一个对象

LinkedList mockedList = mock(LinkedList.class);

// 此时调用get方法,会返回null,因为还没有对方法调用的返回值做模拟

System.out.println(mockedList.get(0));

模拟方法调用的返回值


// 模拟获取第一个元素时,返回字符串first。 给特定的方法调用返回固定值在官方说法中称为stub。

when(mockedList.get(0)).thenReturn(“first”);

// 此时打印输出first

System.out.println(mockedList.get(0));

模拟方法调用抛出异常


// 模拟获取第二个元素时,抛出RuntimeException

when(mockedList.get(1)).thenThrow(new RuntimeException());

// 此时将会抛出RuntimeException

System.out.println(mockedList.get(1));

如果一个函数没有返回值类型,那么可以使用此方法模拟异常抛出

doThrow(new RuntimeException(“clear exception”)).when(mockedList).clear();

mockedList.clear();

模拟调用方法时的参数匹配


// anyInt()匹配任何int参数,这意味着参数为任意值,其返回值均是element

when(mockedList.get(anyInt())).thenReturn(“element”);

// 此时打印是element

System.out.println(mockedList.get(999));

模拟方法调用次数


// 调用add一次

mockedList.add(“once”);

// 下面两个写法验证效果一样,均验证add方法是否被调用了一次

verify(mockedList).add(“once”);

verify(mockedList, times(1)).add(“once”);

校验行为


// mock creation

List mockedList = mock(List.class);

// using mock object

mockedList.add(“one”);

mockedList.clear();

//verification

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了透彻理解linux的工作机理,以及为何它在各种系统上能顺畅运行,你需要深入到内核的心脏。cpu与外部世界的所有交互活动都是由内核处理的,哪些程序会分享处理器的时间,以什么样的顺序来分享。内核不遗余力地管理有限的内存,以使数以千计的进程有效地共享系统资源。内核还精心组织数据传送,使得cpu不再受限于慢速硬盘。    《深入理解linux内核》第三版将引领你畅游内核中用到的最主要数据结构、算法和编程技巧。如果你的确想了解计算机内部的实现机理,那么作者透过现象探寻本质,提供了颇有价值的深入分析。本书针对具体的intel平台,讨论了其重要特征,逐行剖析了相关的代码片段。但是,本书涵盖的内容不仅仅局限于代码的机理,还解释了linux运作方式的理论支撑。    本书第三版涵盖linux 2.6,从中可以看到几乎内核每个子系统都有相当大的变化,首当其冲的是内存管理和块设备部分。本书集中讨论了如下内容:    内存管理,包括文件缓冲、进程交换以及直接内存访问(dma)    虚拟文件系统层和第二及第三扩展文件系统    进程创建及调度   信号、中断及设备驱动程序的主要接口   定时   内核中的同步   进程间通信(ipc)   程序执行   本书将使你熟悉linux所有的内在工作机理,但本书不仅仅是一种学术演练。你将了解到什么条件会促使linux产生最佳性能,你还会看到,linux在各种环境下如何满足进程调度、文件访问及内存管理期间系统提出的快速响应要求。本书有助于你充分展现linux系统的魅力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值