S-JIS[2017-09-16/2022-11-11] 変更履歴
JUnit5の事前条件の記述例。
		
  | 
		
		
  | 
	
JUnit5(Jupiter)ではassumeTrueやassumingThatメソッド等を使って事前条件を記述する。
assertEquals等のassert系メソッドはテストの実行結果を確認する為に使うのに対し、
assume系メソッドはテストの事前条件を確認するのに使う。
(例えばWindows環境でしか実行できないテストを行う場合、事前条件でWindowsかどうかを確認する)
assumeのチェックに失敗すると、それより後の処理は実行されないが、assertとは違い、テスト失敗にはならない。(スキップ扱いになる)
assume系メソッドはAssumptionsクラスのstaticメソッドとして定義されているので、staticインポートしておくと便利。
import static org.junit.jupiter.api.Assumptions.*;
assumeTrueは、条件を満たしていたら後続処理を続行する。
条件外だったら後続処理は実行しない。(スキップする)
	@Test
	void assume1() {
		assumeTrue(System.getProperty("os.name").contains("Windows"));
		System.out.println("assume1");
		assertEquals(";", File.pathSeparator);
	}
同様のメソッドにassumeFalse()もある。[2022-11-11]
assumingThatは、条件を満たしている場合だけ第2引数の処理を実行する。
条件を満たしていてもいなくても、後続処理は実行される。(第2引数のテストが失敗したら、その時点で終了するが)
	@Test
	void assume2() {
		assumingThat(System.getProperty("os.name").contains("Windows"), () -> {
			System.out.println("assume2-1");
			assertEquals(";", File.pathSeparator);
		});
		System.out.println("assume2-2");
		assertTrue(System.lineSeparator().contains("\n"));
	}
TestAbortedExceptionをスローするとテストをスキップする。[2022-11-11]
import org.opentest4j.TestAbortedException;
	@Test
	void skip() {
		throw new TestAbortedException("skip example");
	}
assumeTrue()/assumeFalse()も内部ではTestAbortedExceptionをスローしている。