Mockito spy

   List list = new LinkedList();
   List spy = spy(list);

   //optionally, you can stub out some methods:
   when(spy.size()).thenReturn(100);

   //using the spy calls *real* methods
   spy.add("one");
   spy.add("two");

   //prints "one" - the first element of a list
   System.out.println(spy.get(0));

   //size() method was stubbed - 100 is printed
   System.out.println(spy.size());

   //optionally, you can verify
   verify(spy).add("one");
   verify(spy).add("two");

需要注意的是:when和doReturn的使用场景。spy会导致方法执行进入真实逻辑,如果不希望进入方法内部执行,应该使用doReturn的形式。

   List list = new LinkedList();
   List spy = spy(list);

   //Impossible: real method is called so spy.get(0) throws IndexOutOfBoundsException (the list is yet empty)
   when(spy.get(0)).thenReturn("foo");

   //You have to use doReturn() for stubbing
   doReturn("foo").when(spy).get(0);

在这里插入图片描述
参考:https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#doReturn-java.lang.Object-

猜你喜欢

转载自blog.csdn.net/wt_better/article/details/115185999
今日推荐