JUnit

JUnit5でコントローラのテストを行うMockMvcや、APIのテストを行うMockRestServiceServerを利用してみた

以前このブログで、MockMvcを利用してコントローラクラスのテストを行うプログラムを紹介したが、コントローラクラス内でAPI呼び出しを行う場合は、さらにMockRestServiceServerを利用する。

APIのテストを行うMockRestServiceServerについては、以下のサイトを参照のこと。
https://qiita.com/kazuki43zoo/items/fa9fea1c813f76080fe7

今回は、JUnit5で、コントローラのテストを行うMockMvcや、APIのテストを行うMockRestServiceServerを利用してみたので、そのサンプルプログラムを共有する。

前提条件

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

Spring BootのRest APIサービスで利用している、Swaggerによるドキュメント定義を編集してみたSpring BootのRest APIサービスのドキュメントを定義したり、API実行を行ったりできるためのライブラリにSwaggerが...

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

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

pom.xmlの内容は以下の通りで、JUnit5を利用できるための設定を追加している。

「CODE×CODE」は、需要の高い技術(AWS, Python等)を習得できるプログラミングスクールスクールだった近年、さまざまな会社でクラウド(特にIaaSやPaaSのパブリッククラウド)の需要が非常に高まっていて、クラウドサービスによるシステム開...

また、コントローラクラスの内容は以下の通りで、初期表示時とユーザー情報登録時に、前提条件のAPIサービスの呼び出しを行っている。

【PR】「Filmora」は初心者でも本格的な動画編集ができる大変便利なツールだった「Filmora」は初心者でも使いやすい動画編集ツールで、テンプレートとして利用できるテキスト・動画・音楽などが充実していると共に、複数...

さらに、上記コントローラクラスのindexメソッド・addメソッドのテストを行うテストクラスは以下の通りで、コントローラのテストを行うためのMockMvcや、APIのテストを行うためのMockRestServiceServerを利用している。

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



サラリーマン型フリーランスSEという働き方でお金の不安を解消しよう先日、「サラリーマン型フリーランスSE」という働き方を紹介するYouTube動画を視聴しましたので、その内容をご紹介します。 「サ...

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

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

1) 実行前のデータは、以下の通り。
サンプルプログラムの実行結果_1

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

3) 上記画面で「データ追加」ボタンを押下すると、以下の画面に遷移する。
サンプルプログラムの実行結果_3

4) 各項目を入力し「登録」ボタンを押下すると、以下のように、指定したデータが一覧に追加されることが確認できる。
サンプルプログラムの実行結果_4_1

サンプルプログラムの実行結果_4_2

5) 実行後のデータは以下の通りで、ID=3のデータが追加されていることが確認できる。
サンプルプログラムの実行結果_5



「AOMEI Backupper」は様々な形でバックアップ取得や同期処理が行える便利ツールだったパソコン内のデータを、ファイル/パーティション/ディスク等の様々な単位でバックアップしたり、バックアップ時のスケジュール設定やリアルタイ...

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

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

1) testIndexメソッドを実行した結果は以下の通りで、API実行後の戻り値が、ModelのuserDataListに設定されることが確認できる。
サンプルプログラムのテスト実行結果_1

2) testAddNormalメソッドを実行した結果は以下の通りで、API実行後により追加されたユーザーデータが、ModelのuserDataListに追加されることが確認できる。
サンプルプログラムのテスト実行結果_2

3) testAddExceptionメソッドを実行した結果は以下の通りで、API実行により例外が返却され、エラー処理が行われることが確認できる。
サンプルプログラムのテスト実行結果_3

要点まとめ

  • JUnit5でコントローラクラス内でAPI呼び出しを行うテストを行うには、MockMvcに加え、MockRestServiceServerを利用する。