10

我有一个while循环如下

while (nodeIterator.hasNext())

我已经模拟了这个方法 hasNext 返回 true 以便我可以测试 while 循环内的代码,但现在问题是每次它返回 true 并且这个循环永远不会结束。请告诉我无论如何我可以确保这个方法只被调用一次,或者如果没有,那么我如何在第一次执行后返回 false

4

2 回答 2

19

我得到了答案,我们可以通过以下方式做到这一点

when(nodeIterator.hasNext()).thenReturn(true).thenReturn(false);

这称为方法存根。同样,如果你想调用它两次然后你想返回false,那么执行以下操作

when(nodeIterator.hasNext()).thenReturn(true).thenReturn(true).thenReturn(false);
于 2013-11-14T07:06:06.193 回答
6

OngoingStubbing.thenReturn(T,T...)

这样您就可以返回一系列调用的值。

when(nodeIterator.hasNext()).thenReturn(true,false);

以上在第一次调用时返回 true,在随后的每个调用中返回 false。

于 2013-11-14T07:08:24.227 回答