我有一个while循环如下
while (nodeIterator.hasNext())
我已经嘲笑了这个方法 hasNext 返回 true,以便我可以测试 while 循环中的代码,但现在问题是每次它都返回 true 并且这个循环永远不会结束。请告诉我无论如何我都可以确保此方法只调用一次,或者如果没有,那么我如何在第一次执行后返回 false
我得到了答案,我们可以通过以下方式做到这一点
when(nodeIterator.hasNext()).thenReturn(true).thenReturn(false);
这称为方法存根。同样,如果你想调用它两次,然后你想返回 false,那么执行以下操作
when(nodeIterator.hasNext()).thenReturn(true).thenReturn(true).thenReturn(false);
参见 OngoingStubbing.thenReturn(T,T...)
这样,您可以返回一系列调用的值。
when(nodeIterator.hasNext()).thenReturn(true,false);
上面在第一次调用时返回 true,在每次后续调用时返回 false。