一、什么是mock测试
Mock测试就是在测试活动中,对于某些不容易构造或者不容易获取的比较复杂的数据/场景,用一个虚拟的对象(Mock对象)来创建用于测试的测试方法。
二、为什么要进行Mock测试
Mock是为了解决不同的单元之间由于耦合而难于开发、测试的问题。所以,Mock既能出现在单元测试中,也会出现在集成测试、系统测试过程中。 Mock最大的功能是帮你把单元测试的耦合分解开,如果你的代码对另一个类或者接口有依赖,它能够帮你模拟这些依赖,并帮你验证所调用的依赖的行为。
三、Mock适用场景
1、需要将当前被测单元和其依赖模块独立开来,构造一个独立的测试环境,不关注被测单元的依赖对象,只关注被测单元的功能逻辑。
2、被测单元依赖的模块尚未开发完成,而被测单元需要依赖模块的返回值进行后续处理。
3、前后端项目中,后端接口开发完成之前,接口联调。
4、依赖的上游项目的接口尚未开发完成,需要接口联调测试。
5、被测单元依赖的对象较难模拟或者构造比较复杂。
四、代码实例
1、下载mockito-all-1.9.5.jar包
2、新建测试工程
package com.echo.mockito;
public class Demo {
//新建一个测试方法
public int add(int a, int b){
return a + b;
}
}
3、编写mock测试方法
package com.echo.mockito;
import org.junit.Assert;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
class DemoTest {
@Mock
Demo demo;
@Test
void add() {
MockitoAnnotations.initMocks(this);
Mockito.when(demo.add(1, 1)).thenReturn(2);
Assert.assertEquals(2, demo.add(1, 1));
}
}
4、运行单元测试