定义
mock是在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为。
意义
传统的单元测试需要保证程序的每一个部分都是就绪的,完整的和可用的。直到程序的各个部分被完全开发完才能进入测试阶段。mock提供了隔离测试的概念,假设A依赖B,只需要将B进行mock,返回期望的结果,就可以让A进行一次完整的单元测试。
三个步骤
1. mock一个假对象;
2. 定义假对象的行为;
3. 调用假对象的方法,执行定义好的假行为
4. 验证结果是否正确
maven引入:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>
实践
package com.example.demo.mock;
import org.junit.Test;
import org.mockito.Mockito;
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName MockTest
* @Author zhaoguang
* @Date 2019/12/14
* @Version 1.0
*/
public class MockTest {
@Test
public void test(){
List list = Mockito.mock(ArrayList.class); //mock一个假对象
Mockito.when(list.toString()).thenReturn(new ArrayList<String>().toString()); //定义行为
Assert。assertTrue("[]".equals(list.toString())); //执行并验证结果
}
}
详细使用内容参考:mockit基础使用