Mockito在后续调用void方法时的不同行为?

Chr*_*sel 19 java mockito

我有一个save()返回的方法void:

public void save( MyThing ) throws SaveFailureException { ... }
Run Code Online (Sandbox Code Playgroud)

调用save()具有重试逻辑来处理异常.我想通过模拟第一次调用来测试它,save()以便它抛出异常,第二次调用应该成功而没有异常.

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

when( mock.save() ).thenThrow( ... ).thenReturn( ... )
Run Code Online (Sandbox Code Playgroud)

如何使用返回void的方法执行相同的操作?

fge*_*fge 20

你可以这样做:

doThrow(...).doNothing().when(mock).voidMethod();
Run Code Online (Sandbox Code Playgroud)

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

  • 它应该是`doThrow(...).*doNothing()*.when(mock).voidMethod()`而不是. (2认同)