JUnit 5ライフサイクル - @BeforeAll, @BeforeEach, @AfterAll, @AfterEach

JUnit 5のライフサイクルとテスト前後の処理

@BeforeAll

@BeforeAllが宣言されたメソッドは、テストクラスのすべてのテストメソッドが実行される前に1回だけ実行される。データベース接続の設定や組み込みサーバーの起動など、テストクラスに対して一度だけ行う重い処理で使用する。メソッドシグネチャには必ずstaticを宣言する。

@BeforeAll
static void runOnceBeforeAllTests() {
    System.out.println("@BeforeAll executed \n");
}

@BeforeEach

@BeforeEachが宣言されたメソッドは、各テストメソッドの実行前に実行される。

@BeforeEach
void runBeforeEveryTest() {
  System.out.println("@BeforeEach executed");
}

@AfterEach

@AfterEachが宣言されたメソッドは、各テストメソッドの実行後に実行される。

@AfterEach
void runAfterEveryTest() {
    System.out.println("@AfterEach executed \n");
}

@AfterAll

@AfterAllが宣言されたメソッドは、テストクラスのすべてのテストメソッドが実行された後に1回だけ実行される。通常は@BeforeAllで行った設定の後始末、たとえばデータベース接続のクローズや組み込みサーバーの終了に使う。メソッドシグネチャには必ずstaticを宣言する。

@AfterAll
static void runOnceAfterAllTests() {
    System.out.println("@AfterAll executed");
}

実行順序

ライフサイクルの順序は、@BeforeAll、各テストごとの@BeforeEach@Test@AfterEach、最後に@AfterAllである。

参考