本文混乱,待编辑优化……
本文参考 使用Mockito进行单元测试【1】——mock and verify、Mockito 中文文档 ( 2.0.26 beta )
Mockito的使用包括
- 1.Mockito mock---mock一个接口或类
- 2.Mockito stubbing---打桩功能stubbing 使方法调用返回期望的值
- 3.Mockito verfiry---verify验证,验证mock的接口中的方法是否被调用,被调用次数
- 4.Mockito argument matchers---在stubbing或者verify时,模拟传入的参数
- 5.Mockito.spy---Mock同一个类中的函数调用
1.Mockito---mock一个接口或类
创建一个类或接口的mock实例 是指这个mock实例拥有这个类或接口的所有方法,并且给这些方法以最基本的实现:如果是返回void,他什么都不做,否则他就返回null或0等基本类型的值。
a.创建一个类或接口的mock实例---使用mock()方法
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import java.util.List;
import org.junit.jupiter.api.Test;
public class MockitoTest {
@Test
public void test() throws Exception {
// 使用mock()方法 创建List接口的mock实例
List<String> list = mock(List.class);
list.add("xx");
verify(list, times(1)).add("xx");
verify(list, times(1)).add("y");
}
}
b.创建一个类或接口的mock实例---使用@MockBean注解
在SpringBoot Test中,@MockBean注解 可以创建接口的mock实例,被用来添加 mock 对象到 Spring ApplicationContext中
//@MockBean 创建接口的mock实例
//这个studentService实例就拥有StudentService接口的所有方法
//并且给这些方法以最基本的实现:如果是返回void,他什么都不做,否则他就返回null或0等基本类型的值。
@MockBean
private StudentService studentService;
2.Mockito---打桩功能stubbing 使方法调用返回期望的值
打桩是一个形象的说法,就是把所需的测试数据塞进对象中,适用于基于状态的(state-based&