JUnit API探訪:Assumeクラス

Assertクラスに次いで、Assumeクラスについて。前提条件を記述する時に使えるクラスのようです。

詳細は以下のAPI及び関連エントリを参照。

提供されているメソッドは以下のとおり。併せてコードも記載。

assumeTrue(boolean b) 判定条件がfalseの場合、以降の処理は実行されず無視される
assumeNotNull(Object... objects) 判定要素がNullの場合、以降の処理は実行されず無視される
assumeThat(T actual, Matcher matcher) Matcher条件に合致しない場合、以降の処理は実行されず無視される
(assertThatとほぼ同じ使い方)
assumeNoException(Throwable t) 例外が発生せず処理が正常終了する事を検証、例外発生した場合、以降の処理は実行されず無視される
  • assumeTrue(boolean b):判定条件がfalseの場合、以降の処理は実行されず無視される
@Test
public void checkAssumeTrue() {
	// assumeTrue(boolean b):
	// 判定条件がfalseの場合、以降の処理は実行されず無視される
	assumeTrue(false);
	System.out.println("assertThat Check Start.");	// will never execute
	assertThat("JUnit", is("JUnit"));
	System.out.println("assertThat Check End.");	// will never execute
}
  • assumeNotNull(Object... objects):判定要素がNullの場合、以降の処理は実行されず無視される
@Test
public void checkAssertNotNull() {
	// assumeNotNull(Object...  objects):
	// 判定要素がNullの場合、以降の処理は実行されず無視される
	Object obj = null;
	assumeNotNull(obj);
	System.out.println("assertThat Check Start.");	// will never execute
	assertThat("JUnit", is("JUnit"));
	System.out.println("assertThat Check End.");	// will never execute
}
  • assumeThat(T actual, Matcher matcher):Matcher条件に合致しない場合、以降の処理は実行されず無視される
    (assertThatとほぼ同じ使い方)
@Test
public void checkAssumeThat() {
	// assumeThat(T actual, Matcher<T> matcher):
	// assertThatとほぼ同じ使い方。
	// Matcher条件に合致しない場合、以降の処理は実行されず無視される
	assumeThat(1, is(1)); // passes
	System.out.println("Hello!"); // will execute
	assumeThat(0, is(1)); // assumption failure! test halts
	System.out.println("World!"); // will never execute
}
  • assumeNoException(Throwable t):例外が発生せず処理が正常終了する事を検証、例外発生した場合、以降の処理は実行されず無視される
@Test
public void checkAssumeNoException() {
	// assumeNoException(Throwable t)
	//
	try {
		String string = null;
		System.out.println(string.substring(0, 1));
	} catch (NullPointerException npe) {	// will execute
		System.out.println("NullPointerException occured!");
		assumeNoException(npe);
		System.out.println("continue...");	// will never execute
	}
}

Assumeから派生してTheories等のクラス等もあったりしますが、それはまた別のエントリで。