【问题标题】:Mockito different behavior on subsequent calls to a void method?对 void 方法的后续调用模拟不同的行为?
【发布时间】:2013-06-10 17:28:22
【问题描述】:

我有一个返回 voidsave() 方法:

public void save( MyThing ) throws SaveFailureException { ... }

save() 的调用具有处理异常的重试逻辑。我想通过模拟对save() 的第一次调用来测试它,以便它引发异常,并且第二次调用应该成功而没有异常。

Mockito 有一种很好的方式来处理非 void 方法的连续行为,例如:

when( mock.save() ).thenThrow( ... ).thenReturn( ... )

我怎样才能对返回 void 的方法做同样的事情?

【问题讨论】:

    标签: java mockito


    【解决方案1】:

    你可以这样做:

    doThrow(...).doNothing().when(mock).voidMethod();
    

    (编辑:使用doNothing,如@Rogério 所述)

    【讨论】:

    • 你不是说:doThrow(...).doReturn(...) 吗?
    • 应该是doThrow(...).*doNothing()*.when(mock).voidMethod()
    • 很好,我不知道doNothing()
    猜你喜欢
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多