【Spring Boot】@DatabaseSetupで複数データベースにテストデータを入れる方法




複数データベースにまたがるテスト

@DatabaseSetupを使うとテスト別に使いたいテストデータを簡単に準備することができます。基本的なテストコードの書き方は下記を参考にしてください。

参考記事:Spring Bootでのテストコードの書き方

今回は複数のデータベースを使った場合のテストデータの準備方法を紹介します。

@DatabaseSetups

Spring Bootで複数のデータベースを扱うことができているのを前提とします。設定方法は下記を参考にしてください。

参考記事:Spring BootとJPAで複数データベースを扱う実装方法

複数のテストデータを入れるにはまず@DbUnitConfigurationにDataSourceの設定を行います。引数のdatabaseConnectionは配列を受け取れるのでBeanで指定した名称を設定します。ここに設定したものをテストデータを投入してくれる@DatabaseSetupで使えるようになります。

@DatabaseSetupの引数にconnectionというのがあるのでここにテストデータ別にDataSource名を設定すると別々のデータベースにデータを投入してくれます。

@DbUnitConfiguration(dataSetLoader = CsvDataSetLoader::class, databaseConnection=arrayOf("postgresDataSource", "mysqlDataSource"))
@DatabaseSetups(
        DatabaseSetup(value = "/fixture/postgres/sample_data/", type = DatabaseOperation.CLEAN_INSERT, connection = "postgresDataSource"),
        DatabaseSetup(value = "/fixture/mysql/sample_data/", type = DatabaseOperation.CLEAN_INSERT, connection = "mysqlDataSource")
)

今回のサンプルコードはKotlinで書いているのでJavade描く場合は適宜読み替えてください。

おすすめ書籍

JPAに関して体系的に学べる良い書籍だと思います。良くあるSpring系書籍ですとJPAは少ししか紹介がありませんが丸々一冊JPAに関してなので詳細な解説がされています。内容はJPAと他のORMとの比較から始まりセットアップ、実装の仕方まで幅広く網羅されています。これからJPAで開発を初めてみようかなと考えている方は一読することをオススメします!

Springの概要からインストール方法、各コア機能(Security, Sessionなど)の解説が体系的にまとめられています。2018年に出版されたばかりなので情報も新しいです。これからSpring Bootでアプリケーション開発をしたい方の最初に読む一冊としておすすめします。対象は初心者だけでなく上級者まで幅広く学べるので是非読んでみてください!

 

The following two tabs change content below.

髙妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です