私はアノテーション付きの 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()
。