DropwizardのテストからLiquibaseを知る
DropwizardのDAOテスト用DBをどうしようかと悩んでいたらこれを知りました。
最初はmockitoを使ってやりきろうと思ったけど、SQLのクエリも見たいのと
ログイン周りでSessionを使っているのでこれを選択。
DBをバージョン管理できるすごいやつ。
今回はMySQLの既存のスキーマをxmlにダンプして、h2 dabatase(in memory)に
再構築してテスト用DBを作ろうと頑張ってみました。
Dropwizardに食わせるDB設定は本番環境とテスト環境で設定ymlを分ければいいので楽です。
できたこと:
-
xmlのテンプレートを作っておく(Step 1参照)
Liquibase | Database Refactoring | Liquibase Quickstart<必要ないかもしれません
-
設定項目をliquibase.propertiesに記載
Liquibase使い方(基本)メモ - Qiita -
ダンプ
- java -jar [liquibase.jarのpath] --defaultsFile=[上記で作ったliquibase.properties] generateChangeLog
- liquibase.jarとDBドライバはDropwizardのプロジェクトで使用(依存)しているものにリンクを張るとバージョンで悩まない
- 上記だとログ作成時にymlパーサーが見つからないとINFOが出たが今回は無視
- クラスパスをきっちり指定している人は大丈夫だと思う
-
h2 databaseへの再構築(一部)、Dropwizardのテストでの使用
上記で作成したxmlをdropwizard-migrationで使用
Java - dropwizard-testingが便利でした - Qiita
できなかったこと:
目的は達成できたので満足です。
いずれバージョン管理にも手を出したいところ。