我有一个使用Mockito的测试套件,如果传递了正确的参数,它会将某些void函数模拟为doNothing()
,如果传递了错误的参数,它会抛出错误。当它检测到不正确的参数时,我希望它也打印它在抛出的异常中收到的参数。
Mockito.doThrow(new Exception(String.format("Failed step 1. Received parameters: %s, %s", param1, param2)))
.when(factory).load(any(), any());
Mockito.doNothing().when(factory).load(eq("correct"), eq("correct"));
我似乎找不到这样做的方法,因为Additional Answers不适用于void返回类型。这需要为Java 8工作。
2条答案
按热度按时间py49o6xq1#
您可以使用
doAnswer
来按照您期望的方式打印参数。它将允许您使用getArgument(int i)
方法访问模拟方法的参数。u3r8eeie2#
虽然CaptainAye的解决方案是一个伟大的解决方案,但我意识到我可以通过使用
Mockito.verify
来用更少的代码完成我想要的任务。