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