プロジェクトの JUnit4 でシナリオ テストを作成しています。
テストの 1 つで、予想される例外をチェックする必要があります。JUnit4 では、アノテーションを使用してこれを行います。
@Test(expected=...)
問題は、例外をスローするテストのコードの下に、実行されないことを確認する必要がある他の注釈があることです。与えられた例:
@Test(expected=NullPointerException.class)
public void nullPointerTest() {
Object o = null;
o.toString();
assertTrue(false);
}
このテストは nullpointerexception を取得するため合格しますが、明らかに asserTrue(false) でアサーション エラーが発生するため、失敗させたいと考えています。
これを修正する最善の方法は何ですか? これに対する解決策は次のとおりですが、これが正しい方法であるかどうかはわかりません。
@Test
public void nullPointerTest2() {
boolean caught = false;
try{
Object o = null;
o.toString();
}
catch(NullPointerException e)
{
caught = true;
}
assertTrue(caught);
assertTrue(false);
}
この 2 番目のテストは、予測どおり失敗します。