Java jUnit テストを scala に変換しています。scala はチェック例外を使用しないため、この Java コードは次のようになります。
@Test
public void testException throws Exception = {
throw new Exception
}
次のように scala で書き直すことができます。
@Test def testException = {
throw new Exception
}
Java で記述されたテストは、新しい例外をスローする行で失敗しますが、scala で記述されたテストは、例外もスローしますが合格します。
scala テストを以下のように書き直すことができるので、例外がスローされた場合は、junits の fail メソッドを呼び出して明示的に強制的にテストを失敗させます。
@Test def testException = {
try {
} catch {
case e: Exception => {
fail("exception thrown "+e.getMessage());
}
}
}
このようなテストを書くべきですか? つまり、例外をスローする Java テストの場合、scala バージョンのテストを書き直して、明示的にキャッチし、Java バージョンのテストの動作を模倣できないようにする必要がありますか?