JUnit

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

Spring Boot 2.7を利用したJavaアプリケーションでPowerMockを利用する際、mockito-coreやpowermockで特定のバージョンを指定することで、JUnit4とJUnit5に加え、PowerMockも利用可能となる。

今回は、Spring Boot 2.7を利用したJavaアプリケーションのJUnitによるテストコードで、PowerMockを利用してみたので、そのサンプルプログラムを共有する。

前提条件

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

Spring Boot 2.7を利用したJavaアプリケーションでJUnit4とJUnit5のテストを実行してみたSpring Boot 2.7を利用したJavaアプリケーションでJUnitを用いると、通常はJUnit5で動作するが、JUnit4とJ...

また、PowerMockを利用したテストコードの参照元は、下記記事とする。

JUnitのPowerMockを利用してstaticメソッドのMock化と呼出確認をしてみたこれまでは、Mockitoを利用してインスタンスメソッドをMock化する方法について記載していたが、今回はstaticメソッドのMock...

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

作成したサンプルプログラムの構成は、以下の通り。なお、下記の赤枠については、後述する。
サンプルプログラムの構成

pom.xmlの内容は以下の通りで、JUnit4, JUnit5に加え、PowerMockも利用できるよう、変更している。

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

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



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

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

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

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

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

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

2) この状態で「DemoServiceImplTestJunit4.java」を実行した場合、以下のようなエラーが発生する。
経緯_2

3) この状態で「DemoServiceImplTestJunit5.java」を実行した場合、以下のように正常終了する。
経緯_3

4) pom.xmlの「テスト用の設定」の設定を、以下のように変更する。

上記は、下記サイトの最後の方にある、XiaoZhiSnowさんのコメントを参考に設定している。
https://github.com/mockito/mockito/issues/2568

5) この状態で「DemoServiceImplTestJunit4.java」を実行した場合、以下のように正常終了する。
経緯_5

6) この状態で「DemoServiceImplTestJunit5.java」を実行した場合も、以下のように正常終了する。
経緯_6

また、「DemoServiceImplTestPowermock.java」を実行した結果は、「サンプルプログラムの実行結果」に記載の通りとなる。

要点まとめ

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