JUnit

JUnit5でBean Validationのテストを行ってみた

Spring Bootを利用したWebアプリケーションで、Formオブジェクトのチェック処理を行う際はBean Validationを利用するが、Bean Validationを用いたチェック処理のテストも、JUnitを利用して行える。

今回は、JUnit5でBean Validationを用いたチェック処理を行ってみたので、そのサンプルプログラムを共有する。

前提条件

下記記事の実装が完了していること。

JUnit5でコントローラのテストを行うMockMvcや、APIのテストを行うMockRestServiceServerを利用してみた以前このブログで、MockMvcを利用してコントローラクラスのテストを行うプログラムを紹介したが、コントローラクラス内でAPI呼び出しを...

作成したサンプルプログラムの内容

作成したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上記の赤枠は、このブログで掲載するソースコードである。

Formクラスの内容は以下の通りで、各種アノテーションを利用してチェック処理を実装している。

また、生年月日のチェック処理を行うアノテーションの定義は、以下の通り。

さらに、エラーメッセージを定義するプロパティファイルの内容は、以下の通り。



Formクラスのテストクラスの内容は以下の通りで、Validatorクラスを用いてテストを行っている。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/junit5-bean-validation/demoRestApiCallWeb



「FlexClip」はテンプレートとして利用できる動画・画像・音楽などが充実した動画編集ツールだったテンプレートとして利用できるテキスト・動画・画像・音楽など(いずれも著作権フリー)が充実している動画編集ツールの一つに、「FlexCli...

テスト対象プログラムの実行結果

テスト対象プログラムの実行結果は、以下の通り。

1) 前提条件となるRest APIサービスのSpring Bootアプリケーションを起動後、今回作成したプロジェクトのSpring Bootアプリケーションを起動し、「http:// localhost:8084/」とアクセスすると、以下の画面が表示される。
テスト対象プログラムの実行結果_1

2) 上記画面で「データ追加」ボタンを押下すると、以下の画面に遷移する。
テスト対象プログラムの実行結果_2

3) 何も入力せず「登録」ボタンを押下すると、以下のように、エラーメッセージが表示されることが確認できる。
テスト対象プログラムの実行結果_3



Code VillageはJavaScriptを中心としたサポート体制が充実したプログラミングスクールだったJavaScriptや、JavaScriptのフレームワーク「React」「Vue」を中心にオンラインで学習できるプログラミングスクール...

テストプログラムの実行結果

テストプログラムの実行結果は、以下の通り。

1) testHasNoErrorメソッドを実行した結果は以下の通りで、Formクラスでエラーが無いことが確認できる。
テストプログラムの実行結果_1

2) testHasIdErrorメソッドを実行した結果は以下の通りで、IDの数値チェックエラーが発生していることが確認できる。
テストプログラムの実行結果_2

3) testHasNameErrorメソッドを実行した結果は以下の通りで、名前の必須チェックでエラーが発生していることが確認できる。
テストプログラムの実行結果_3

4) testHasBirthdayErrorメソッドを実行した結果は以下の通りで、生年月日の不正チェックでエラーが発生していることが確認できる。
テストプログラムの実行結果_4

5) testHasNoBirthdayErrorメソッドを実行した結果は以下の通りで、生年月日の必須チェックでエラーが発生していることが確認できる。
テストプログラムの実行結果_5

6) testHasSexErrorメソッドを実行した結果は以下の通りで、性別の不正チェックでエラーが発生していることが確認できる。
テストプログラムの実行結果_6

7) testMultiErrorメソッドを実行した結果は以下の通りで、複数のエラーが発生していることが確認できる。
テストプログラムの実行結果_7

要点まとめ

  • Bean Validationを利用したFormオブジェクトのチェック処理も、JUnitを利用してテストを行うことができる。