Mockito 基础 愉快单元测试之旅

本文介绍了Mockito作为Java单元测试框架的基础用法,包括静态导入简化语法、mock和spy的区别及用法,以及在Spring Boot中的应用。强调了在Spring Boot中使用Mockito时的注意事项,如避免使用@SpyBean和@Transaction注解引发的问题,推荐使用Spring Test框架结合Mockito进行测试。同时提醒读者注意Spring Context Cache可能导致的测试干扰,并提供了避免此类问题的方法。
摘要由CSDN通过智能技术生成

Mockito 基础

Mockito 是实现mock技术的java框架。

mock技术主要解决非常难创建的对象进行模拟,或者是在测试阶段无法创建的对象进行模拟。

常见的模拟如:RPC远程调用,数据库,Minio,Kafka等

相关资源

框架官网网站:

Mockito framework site

本文只讲基本使用,不会设计到所有Mockito的命令,具体其他命令参考官网Document

基本使用

1.通过静态导入来让mokito命令写的简洁

(后面的所有讲述内容都以简写来描述)

在import的地方加入:

import static org.mockito.Mockito.*;

加入之后mockito语法的格式:

doReturn("Hello").when(someClass).sayHello()

没加入上面的import语句的格式:

Mockito.doReturn("Hello").when(someClass).sayHello()
2.基本命令mock和spy

2.1 mock和spy的区别:

mock: 封装一个空壳的对象,如果没有使用mock指定返回值,则直接返回null

spy: 封装真实对象,可以选择是否执行原始功能,没有指定的mock函数会按照正常流程走

2.2 基本使用语法
2.2.1 mock使用例子:
// 新建一个空壳对象(任何方法都不会被真实执行)
TestClass mock = mock(TestClass.class);

// 例如 我需要当mock对象执行Print方法的时候返回10
// 写法1
when(mock.Print()).thenReturn(10);
// 写法2
doReturn(10).when(mock).Print();

// 执行测试
System.out.println(mock.Print());
2.2.2 spy使用例子:
// 创建一个真实对象,因为spy会保留真实对象功能
TestClass testClass = new TestClass();

// 使用spy创建一个testClass的间谍对象
TestClass spy = spy
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值