概述
##前言
Mockito是一个强大的mock工具,本文将重点讲述Mockito中mock与spy的区别
mock与spy的区别
mock跟spy都可以用于模拟对象,区别是mock产生的对象,并不会真正的执行对象的行为,而spy创建的对象,会真的去执行对象的行为
示例:
@Test
public void mockitoTest2(){
//生成一个mock对象
List<String> mockedList = Mockito.mock(ArrayList.class);
//打印mock对象的类名,看看mock对象为何物
System.out.println("mock List==========="+mockedList.getClass().getName());
//操作mock对象
mockedList.add("one");
System.out.println("0 agr:"+mockedList.get(0));
System.out.println("10 agr:"+mockedList.get(10));
//生成一个spy对象
List<String> spyList = Mockito.spy(ArrayList.class);
//打印mock对象的类名,看看spy对象为何物
System.out.println("spy List============"+spyList.getClass().getName());
//操作mock对象
spyList.add("one");
System.out.println("0 agr:"+spyList.get(0));
System.out.println("10 agr:"+spyList.get(10));
}
输出:
mock List===========org.mockito.codegen.ArrayList$MockitoMock$951596036
0 agr:null
10 agr:null
spy List============org.mockito.codegen.ArrayList$MockitoMock$951596036
0 agr:one
java.lang.IndexOutOfBoundsException: Index: 10, Size: 1
通过代码示例可以看出,对mockedList的操作并没有真正的去执行,而spyList会抛出异常;
最后
以上就是洁净大船为你收集整理的Mockito mock与spy的区别的全部内容,希望文章能够帮你解决Mockito mock与spy的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复