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
}
}