Mockito mock 和 spy 区别
所属分类 unit-test
浏览量 561
mock 和 spy 区别
未打桩前 spy 会调用真实方法 ,mock不会调用实际方法
mock方法 默认返回空数据 对象类型为 null
int 0
Integer null
boolean false
List mockList = Mockito.mock(ArrayList.class);
List spyList = Mockito.spy(ArrayList.class);
// 入参使用 接口 行为与mock一样
// List spyList = Mockito.spy(List.class);
// 未打桩前 spy 会调用真实方法 ,mock不会调用实际方法
System.out.println(mockList.size());
System.out.println(mockList.get(0));
try {
// 调用实际方法
System.out.println(spyList.get(0));
}catch(Exception e) {
// java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
System.out.println(e);
}
// 调用 add 方法
spyList.add("hello");
// 1
System.out.println(spyList.size());
// hello
System.out.println(spyList.get(0));
// stub 打桩
Mockito.when(mockList.get(0)).thenReturn("first");
Mockito.when(spyList.get(0)).thenReturn("first");
// first
System.out.println(mockList.get(0));
// first
System.out.println(spyList.get(0));
上一篇
下一篇
powermock 静态方法mock
mockito 实例
Mocktio 指南
mock 与 字节码生成工具
spring web 注解
javassist 简介