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

Java Mockito在后续调用void方法时会有不同的行为吗?,java,mockito,Java,Mockito,我有一个save()方法返回void: public void save( MyThing ) throws SaveFailureException { ... } 对save()的调用具有处理异常的重试逻辑。我想通过模拟对save()的第一个调用来测试它,这样它就会抛出一个异常,第二个调用应该会成功,不会出现异常 Mockito有一个很好的方法来处理非void方法的连续行为,例如: when( mock.save() ).thenThrow( ... ).thenReturn( ... )

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

public void save( MyThing ) throws SaveFailureException { ... }
save()
的调用具有处理异常的重试逻辑。我想通过模拟对
save()
的第一个调用来测试它,这样它就会抛出一个异常,第二个调用应该会成功,不会出现异常

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

when( mock.save() ).thenThrow( ... ).thenReturn( ... )
如何对返回void的方法执行相同的操作

您可以这样做:

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

(编辑:使用@Rogério提到的
doNothing

你的意思是:
doThrow(…).doReturn(…)
?它应该是
doThrow(…).*doNothing()*。when(mock)。voidMethod()
。不错,我不知道
doNothing()