プログラミング Java

【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 の仕組みを使って 自動的に登録する。

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング, Java
-

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

【TemplateMethodパターン】売上レポートをテキストとHTML形式で出力分けする事例

概要 デザインパターンのTemplateMethodパターンの事例です。 デザインパターンは増補改訂版 Java言語で学ぶデザインパターン入門で学ぶことができますし、Qiitaでも取り上げられています …

【Java】TreeSetの使い方(順序付けSet)

TreeSetの使い方 基本的な使い方はHashSetと同じなので、以下を参照下さい。 【Java】HashSetの使い方いろいろ TreeSetは何も指定せずにインスタンスを生成すると、Collec …

【SpringBoot入門】#6~ 登録機能の実装

概要 画面から送信されたデータをDBに登録する機能を実装します。 入力データはバリデーションによってチェックされることとします。 サーバサイドは以下のように各層で処理分けされます。 <Contorol …

【Java】IllegalArgumentExceptionの原因と対策方法

IllegalArgumentExceptionの原因と対策方法はとても簡単です。 基本的なことを理解すればすぐに解消できます。 IllegalArgumentExceptionとは? 不正な引数また …

pageEncodingとcontentTypeのcharsetの違い

pageEncodingとcontentTypeのcharsetは処理されるタイミングが異なります。 それによって文字化けの原因につながっているので、どのように設定すればいいかを解説していきます。 違 …

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。