JUnit API探訪:Assumeクラス
Assertクラスに次いで、Assumeクラスについて。前提条件を記述する時に使えるクラスのようです。
詳細は以下のAPI及び関連エントリを参照。
提供されているメソッドは以下のとおり。併せてコードも記載。
assumeTrue(boolean b) | 判定条件がfalseの場合、以降の処理は実行されず無視される |
assumeNotNull(Object... objects) | 判定要素がNullの場合、以降の処理は実行されず無視される |
assumeThat(T actual, 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等のクラス等もあったりしますが、それはまた別のエントリで。