我有一个void
返回类型的方法。它也可以抛出一些异常,所以我想测试那些被抛出的异常。由于同样的原因,所有尝试都失败了:
Stubber类型中的(T)方法不适用于参数(void)
任何想法如何让方法抛出指定的异常?
doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));
答案 0 :(得分:593)
括号位置不佳。 你必须使用
doThrow(new Exception()).when(mockedObject).methodReturningVoid(...);
^
而不是
doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));
^
中对此进行了解释
答案 1 :(得分:6)
如果您想知道如何使用新的Bock样式的Mockito做到这一点:
willThrow(new Exception()).given(mockedObject).methodReturningVoid(...));
为了将来参考,可能需要抛出异常,然后什么也不做:
willThrow(new Exception()).willNothing().given(mockedObject).methodReturningVoid(...));