【Junit5】アノテーションの意味をざっくりと解説

当ページのリンクには広告が含まれています。
junit, テスト, junit5

Junit5のアノテーションについてざっくりと理解するための記事です。
なんか見たことあるけど、要するに何に使うやつなんだっけ?
を軽く思い出すためにあります。

目次

テストを実行

@Test

テストメソッドであることを示します。
単一のテストを実行します。

@ParameterizedTest

パラメーター化テストであることを示します。
複数のテストデータを実行します。

@RepeatedTest

繰り返しテストであることを示します。
実行回数を指定して実行します。

事前/事後処理

@Test, @RepeatedTest, @ParameterizedTest, @TestFactory が付与されたテストメソッド毎に実行されます。

@BeforeAll

テストクラスのすべてのテストメソッドの実行前に一度だけ実行されます。

@BeforeEach

テストクラスの各テストメソッドの実行前に毎回実行されます。

@AfterAll

テストクラスのすべてのテストメソッドの実行後に一度だけ実行されます。

@AfterEach

テストクラスの各テストメソッドの実行後に毎回実行されます。

設定

@TestInstance

テストクラスのインスタンスのライフサイクルを設定します。

PER_CLASS:一度だけテストクラスのインスタンスを生成します。
PER_METHOD:メソッド毎にテストクラスのインスタンスを生成します。

@DisplayName

テストクラスやテストメソッドにカスタムの表示名を指定します。

@Disabled

テストクラスやテストメソッドを無効化します。

JUnit4では@Ignoreです。

@Tag

クラスまたはメソッドレベルでテストをフィルタリングするためのタグを宣言します。

JUnit4のCategoryと同じです。

テスト構造の定義

@Nested

テストクラス内でネストしたテストクラスを定義します。

非staticのテストクラスです。

@TestTemplate

テストケースのテンプレートであることを示します。
このメソッドは、登録したプロバイダ が返す実行コンテキストの数に応じて、複数回呼び出されます。

テストを生成

@TestFactory

動的テストのためのテストファクトリです。

@Test メソッドとは異なり、@TestFactory メソッド自身はテストケースではなく、 テストケースを生成します。

拡張機能

@ExtendWith

カスタムの拡張機能を登録するために使われます。

登録方法は3つです。
・@ExtendWith を使って 宣言的に 登録する。
・@RegisterExtension を使って 手続き的に 登録する。
・Javaの ServiceLoader の仕組みを使って 自動的に登録する。

最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

リーマンショックの影響で26歳の時にIT業界から離れ、紆余曲折を経て34歳でエンジニアに復帰しました。
復帰前は開発未経験でしたが、独学した知識と面接時のコミュニケーション力で見事開発エンジニアとして復帰しました!
今はフリーランスエンジニアとして仕事をしています。

■保有資格
・Java Gold SE 11

コメント

コメントする

CAPTCHA


目次