【问题标题】:how to make sure mocked object is called only once in mockito如何确保在 mockito 中只调用一次模拟对象
【发布时间】:2013-11-14 07:01:09
【问题描述】:

我有一个while循环如下

while (nodeIterator.hasNext())

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

【问题讨论】:

    标签: java loops mocking mockito


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      OngoingStubbing.thenReturn(T,T...)

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

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

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

      【讨论】:

      • 提到的链接不再可用
      猜你喜欢
      • 2018-11-03
      • 1970-01-01
      • 1970-01-01
      • 2018-11-01
      • 2016-11-05
      • 2015-06-06
      • 1970-01-01
      • 2020-06-01
      • 2017-05-17
      相关资源
      最近更新 更多