JUnit

Spring Boot 2.7を利用したJavaアプリケーションでJUnit4とJUnit5のテストを実行してみた

Spring Boot 2.7を利用したJavaアプリケーションでJUnitを用いると、通常はJUnit5で動作するが、JUnit4とJUnit5の両方で動作するような設定も行うことができる。

今回は、Spring Boot 2.7を利用したJavaアプリケーションのJUnitによるテストコードを、JUnit4とJUnit5の両方で動作できるようにし、更にMockitoを利用してみたので、そのサンプルプログラムを共有する。

前提条件

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

JunitのMockitoを利用してモック化したオブジェクトの引数と呼出回数を取得してみたJUnitのテストを行う際、Mock化したメソッドの戻り値がvoid型で、Mock化したメソッドが呼ばれたかどうかわからない場合がある。...

サンプルプログラムの作成

前提条件の記事のプログラムを、ビルドツールmavenを利用しSTS上に配置後、JUnitを用いたテストコードを作成する。

作成したサンプルプログラムの構成は、以下の通り。なお、下記の赤枠は、前提条件のプログラムから変更したプログラムである。
サンプルプログラムの構成

pom.xmlの内容は以下の通りで、spring-boot-starter-testを使う設定を、JUnit4, JUnit5の両方で使えるよう、変更している。

また、JUnit4でMockitoを利用した際のソースコードは、以下の通り。

さらに、JUnit5でMockitoを利用した際のソースコードは、以下の通り。

その他のソースコードについては、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-27-junit4-junit5/demoSpringTest/



ウズウズカレッジJavaコースはわかりやすい動画教材と充実した就業サポートで優良企業を目指せるプログラミングスクールだったJavaは、世界中で広く使われていて、現在の需要が高く将来性もある開発言語になります。 https://www.acrovision....

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

サンプルプログラムの実行結果は、以下の通り。

1)「DemoServiceImplTestJunit4.java」を実行した結果は、以下の通りで、正常に実行できている。
サンプルプログラムの実行結果_1

2)「DemoServiceImplTestJunit5.java」を実行した結果は、以下の通りで、正常に実行できている。
サンプルプログラムの実行結果_2



Androidロックを解除する裏ワザ「4uKey for Android」をご紹介Android端末では、以下の画像のような画面ロックパスワードを設定することができますが、このパスワードを忘れてしまうと、Android...

サンプルプログラムのpom.xml(テスト用の設定)の完成経緯

サンプルプログラムのpom.xml(テスト用の設定)が完成するまでの経緯は、以下の通り。

1) pom.xmlの「テスト用の設定」を、以下のように修正する。

2) Spring Boot 2.7の場合、デフォルトでJUnit5を利用する設定になっているため、以下のように、JUnit4のテストクラスでコンパイルエラーが発生していることが確認できる。
経緯_2

3) pom.xmlの「テスト用の設定」を、以下のように修正する。

4) 以下のように、JUnit4のテストクラスのコンパイルエラーが解消されたことが確認できる。
経緯_4

5) ただし、実行すると、以下のように「テスト・ランナー ‘Junit 5’のテストが見つかりません。」と表示される。
経緯_5_1

経緯_5_2

6) pom.xmlの「テスト用の設定」を、以下のように修正する。

7) 以下のように、次はJUnit5のテストクラスでコンパイルエラーが発生することが確認できる。
経緯_7

8) pom.xmlの「テスト用の設定」を、以下のように修正する。

9) 以下のように、JUnit5のテストクラスでコンパイルエラーがまだ少し残っていることが確認できる。
経緯_9

10) pom.xmlの「テスト用の設定」を、以下のように、サンプルプログラムと同じ状態に修正する。

11) 以下のように、JUnit5のテストクラスのコンパイルエラーが無くなることが確認できる。
経緯_11

このときの実行結果は、「サンプルプログラムの実行結果」に記載の通りとなる。

要点まとめ

  • Spring Boot 2.7を利用したJavaアプリケーションでJUnitを用いると、通常はJUnit5で動作するが、設定次第で、JUnit4とJUnit5の両方で動作した上で、Mockitoも利用できる。