Mockito 测试 void 方法引发异常
我有一个返回类型的方法。它还可以引发许多异常,因此我想测试那些抛出的异常。所有尝试都失败,原因相同:void
Stubber 类型中的方法 when(T) 不适用于参数 (void)
任何想法,我可以获得方法来抛出一个指定的异常?
doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));
我有一个返回类型的方法。它还可以引发许多异常,因此我想测试那些抛出的异常。所有尝试都失败,原因相同:void
Stubber 类型中的方法 when(T) 不适用于参数 (void)
任何想法,我可以获得方法来抛出一个指定的异常?
doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));
括号位置不当。
您需要使用:
doThrow(new Exception()).when(mockedObject).methodReturningVoid(...);
^
并且不使用:
doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));
^
这在文档中进行了说明
如果您曾经想过如何使用Mockito的新BDD风格来做到这一点:
willThrow(new Exception()).given(mockedObject).methodReturningVoid(...));
为了将来的参考,人们可能需要抛出异常,然后什么都不做:
willThrow(new Exception()).willDoNothing().given(mockedObject).methodReturningVoid(...));