MENU
JUnit

JUnit5でDBUnitの@DatabaseSetupや@ExpectedDatabaseというアノテーションを利用してみた

データベースのデータ検索・追加・更新・削除のテストを実施するDBUnitというツールで利用する@DatabaseSetupや@ExpectedDatabaseアノテーションは、JUnit5のバージョンでも利用できる。

なお、JUnit4とJUnit5の違いについては、以下のサイトを参照のこと。
https://qiita.com/torayamadajp/items/e0c84296105edb472942

今回は、JUnit5でDBUnitの@DatabaseSetupや@ExpectedDatabaseアノテーションを利用したテストを行うプログラムを作成し、JUnit4で動作するプログラムと共存させてみたので、そのサンプルプログラムを共有する。

前提条件

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

JUnit4でDBUnitの@DatabaseSetupや@ExpectedDatabaseというアノテーションを利用してみたDBUnitというツールを利用すると、データベースのデータ検索・追加・更新・削除のテストを実施できるが、その際、テスト前にテストデータを...

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

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

build.gradleの内容は以下の通りで、JUnit5を利用するための設定を追加している。ちなみに、testタスク内の「useJUnitPlatform()」は、GradleでJUnit5を利用する際に必要な設定となる。

また、JUnit5ベースで、@DatabaseSetupと@ExpectedDatabaseのアノテーションを利用したテストクラスの内容は、以下の通り。

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



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

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

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

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

2) UserDataTestJunit5クラスを実行した時のログ出力内容は以下の通りで、@DatabaseSetupアノテーションでテスト前にテストデータを設定し、@ExpectedDatabaseアノテーションでテスト後のデータ検証が行えていることが確認できる。
サンプルプログラムの実行結果_2_1

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

3) テスト実行後のデータは、以下の通りで、実際のDBデータは更新されずロールバックされることが確認できる。
サンプルプログラムの実行結果_3

なお、今回は掲載していないが、UserDataTest1クラス・UserDataTest2クラスについても、前提条件の記事と同じように実行できる。

要点まとめ

  • DBUnitというツールを利用してDB回りのテストを行う際に利用する、@DatabaseSetupや@ExpectedDatabaseアノテーションは、JUnit5環境でも利用できる。