我正在使用 Junit 4 和 Mockito,我想存根一个方法调用,以便它引发异常:
doThrow(MyException.class).when(myObject).foo();
问题是,MyException 是一个已检查的异常,因此foo()
在此语句中的调用会导致编译器抱怨我必须处理异常或在我的方法中添加 throws 子句。
所以我想知道处理这种情况的正确方法是什么?到目前为止,我的想法是:
- 我用错了,有更好的方法来做到这一点。
- 我只是添加
throws MyException
到测试方法 - 我将调用提取到另一个方法,该方法只是吞下异常
例如
private void givenFooThrowsAnException(MyObject myObject) {
try {
doThrow(MyException.class).when(myObject).foo();
} catch (MyException e) {
// Required to stub a checked exception
}
}