JUnit テスト アノテーションを使用して例外メッセージをアサートするにはどうすればよいですか? 質問する

JUnit テスト アノテーションを使用して例外メッセージをアサートするにはどうすればよいですか? 質問する

私はアノテーション付きの JUnit テストをいくつか書きました@Test。テスト メソッドがチェック例外をスローし、例外とともにメッセージをアサートしたい場合、JUnit@Testアノテーションを使用してそれを実行する方法はありますか? 私の知る限り、JUnit 4.7 ではこの機能は提供されていませんが、将来のバージョンでは提供されるでしょうか? .NET ではメッセージと例外クラスをアサートできることは知っています。Java の世界で同様の機能を探しています。

私が欲しいのはこれです:

@Test (expected = RuntimeException.class, message = "Employee ID is null")
public void shouldThrowRuntimeExceptionWhenEmployeeIDisNull() {}

ベストアンサー1

あなたは@Rule注釈付きExpectedException、 このような:

@Rule
public ExpectedException expectedEx = ExpectedException.none();

@Test
public void shouldThrowRuntimeExceptionWhenEmployeeIDisNull() throws Exception {
    expectedEx.expect(RuntimeException.class);
    expectedEx.expectMessage("Employee ID is null");

    // do something that should throw the exception...
    System.out.println("=======Starting Exception process=======");
    throw new NullPointerException("Employee ID is null");
}

ドキュメントの例はExpectedException(現時点では) 間違っていることに注意してください。パブリック コンストラクターがないため、 を使用する必要がありますExpectedException.none()

おすすめ記事