shimashimaの日記: 単体テスト用DB 3
日記 by
shimashima
単体テスト用のDBは何かないかとAcphe Derbyをさわってみたが、結局期待してきた機能は無かったのでHSQLDBを使うことになりそうだ。
Apache Derbyは普通に使う分には手軽でいいのだが、ストレージにデータをはき出すのが単体テスト用としては困る。HSQLDBはその点In Memoryモードがあるので、意識をせずに毎回初期化された状態になるのが単体テスト用途では使い勝手がよい。Apache DerbyはDBの内容が揮発しないので、意識的に毎回DROP TABLE処理を入れないといけないのだ。
使うDBは決まった。
後はテーブル作成とデータ投入の初期化処理を行うクラスをつくろう。Springに含まれているDatabaseTestだったかを参考にしてみよう。
H2( http://www.h2database.com/ )は? (スコア:0)
結構実用できますよ、少なくともHSQLDBでテスト出来るものの代用程度に。
Re:H2( http://www.h2database.com/ )は? (スコア:1)
何かプロダクトを作るのであればH2はパフォーマンスがよいらしいので検討対象に入りますが、今回はあくまでもテスト用なので。CREATE TABLE文のメンテナンスも面倒くさいのにその上DROP TABLE文まで手動メンテナンスはいやですから。
# 前のプロジェクトはCREATE TABLEすら、Hibernateを使って自動化されていたのでテスト用データのメンテナンスだけで
# 済んでいたことはやはりすばらしかった。
Re:H2( http://www.h2database.com/ )は? (スコア:1)
と書いた後に、SQuirreL SQL Client のJDBC Driver一覧を見てみたら、「H2」「H2 Embedded」と並んで「H2 In-Memory」の文字がありました。
H2もIn Memoryモードがあるようですね。失礼しました。
そういうことでH2を調べて試してみます。
ご指摘ありがとうございました。