私は本当にJUnitとユニットテスト全般の初心者であり、正しいアプローチを見つけるのに苦労しています。予期しない例外に対処するためのより良い方法は何ですか? またその理由は何ですか?
方法 A:
- 最初に期待されるものをキャッチし、メッセージでテストに失敗します
- 最後の catch ブロックで、一般的な例外をキャッチし、「予期しない例外が発生しました」というメッセージでテストに失敗します
方法 B:
- 期待されるものだけをキャッチし、メッセージで失敗します
- テストメソッドを でマークし、
throws Exception
予期しない「バブルアップ」をテストから完全に除外します
さらに混乱を招くのは、「予期しない例外」と言うのは、次のいずれかを意味することです。
- テストされているメソッドがスローすると主張する例外ですが、この場合はオンです。たとえば、私のメソッドは IllegalArgumentException と NullPointerException をスローしますが、この try ブロックでは IllegalArgument; をスローすると予想しています。NullPointer は予期しないものと見なされます。キャッチして失敗するか、バブルアップしますか?
- 私が本当に予想できない一般的な例外
私はこの質問が少し混乱していることを認識しています.私自身も迷子になっています. 反対票を投じてもあなたを責めることはありませんが、それでもリスクを負う価値はあります:)