私はscalaの「try/catch」テストコードを「intercept」を使用するように変換しています
'intercept'を使用すべきでないシナリオはありますか?「try/catch」の代わりに「intercept」を使用する唯一の利点は簡潔さですか?
intercept
主な違いは、プログラムエラーが原因ではなく、発生した例外が予期されるというセマンティクスがあることだと思います。
したがって、私は通常intercept
、ユーザーが誤ったシナリオまたは同様のシナリオを入力したときに例外をテストするためのテストケースが正しくスローされる場合にのみ使用します。
実用的な利点の1つは、intercept
も返すことです。したがって、次のException
ように確認できます。
intercept[IndexOutOfBoundsException](s charAt -1).getMessage should be === "..."