0


Mockito mock与spy的区别

##前言

Mockito是一个强大的mock工具,本文将重点讲述Mockito中mock与spy的区别

mock与spy的区别

mock跟spy都可以用于模拟对象,区别是mock产生的对象,并不会真正的执行对象的行为,而spy创建的对象,会真的去执行对象的行为

示例:

@TestpublicvoidmockitoTest2(){//生成一个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$9515960360 agr:null10 agr:null
spy List============org.mockito.codegen.ArrayList$MockitoMock$9515960360 agr:one

java.lang.IndexOutOfBoundsException:Index:10,Size:1

通过代码示例可以看出,对mockedList的操作并没有真正的去执行,而spyList会抛出异常;

标签: java jvm 单元测试

本文转载自: https://blog.csdn.net/csdn_tiger1993/article/details/127209370
版权归原作者 黄小果 所有, 如有侵权,请联系我们删除。

“Mockito mock与spy的区别”的评论:

还没有评论