Mockito测试void方法会抛出异常

时间:2013-03-01 11:40:33

标签: java exception mocking mockito

我有一个void返回类型的方法。它也可以抛出一些异常,所以我想测试那些被抛出的异常。由于同样的原因,所有尝试都失败了:

  

Stubber类型中的(T)方法不适用于参数(void)

任何想法如何让方法抛出指定的异常?

doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));

2 个答案:

答案 0 :(得分:593)

括号位置不佳。 你必须使用

doThrow(new Exception()).when(mockedObject).methodReturningVoid(...);
                                          ^

而不是

doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));
                                                                   ^

the documentation

中对此进行了解释

答案 1 :(得分:6)

如果您想知道如何使用新的Bock样式的Mockito做到这一点:

willThrow(new Exception()).given(mockedObject).methodReturningVoid(...));

为了将来参考,可能需要抛出异常,然后什么也不做:

willThrow(new Exception()).willNothing().given(mockedObject).methodReturningVoid(...));