Mockito 基础
Mockito 是实现mock技术的java框架。
mock技术主要解决非常难创建的对象进行模拟,或者是在测试阶段无法创建的对象进行模拟。
常见的模拟如:RPC远程调用,数据库,Minio,Kafka等
相关资源
框架官网网站:
本文只讲基本使用,不会设计到所有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