skillup

技術ブログ

Database Java

dbUnitの使い方

投稿日:

えーJavaで有名なテストツールDBUnitについて。

DbUtilではありませんので間違えないように。(私は最初間違えました・・・)

まだ全然使い込んでるわけではありませんがどんなことができるかというと

  1. 今あるデータを一度バックアップをとり、初期化して事前データ(エクセルで定義)データを入れられる
  2. テストが終わったら、事前データとしていれたデータを削除し、バックアップをリストアできる
  3. 対象となるデータがエクセルで用意した期待データと等しいかをチェックできる。

他にもいろいろあるとは思いますが、私が調べたのはこんなところです。

インストール

まずはインストールからpomでそのままいけます。

dbunitだけではなく、必要となる周辺ライブラリも合わせてインストールしておきましょう。

ソース

ちなみにエクセルやxmlのパスはsrc/main/resources直下です。

説明はほぼコード上のコメントに集約されているかと思います。

注意点

  •  もとからあるデータをバックアップしてからリストアするまでに処理が失敗するとリストアされません。
    例外時にリストアのメソッドをいれておかないと面倒です。
  • 事前データとして入力する日付の値はyyyy/MM/ddにしておきましょう。
  • 期待値のエクセルでは日付をyyyy-MM-ddにしておき、文字列にしておかないとダメです。日付だと自動でyyyy/MM/ddになってしまいます。

参考情報

http://code-examples-ja.hateblo.jp/entry/2014/12/11/DBUnit%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%80%81XML%E3%81%8B%E3%82%89%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%93%E3%81%A0%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB

http://genesis-tdsg.blogspot.jp/2013/07/dbunit_24.html

http://javawock.blog.shinobi.jp/java-%20dbunit/dbunit%E3%81%A7excel%E3%81%8B%E3%82%89%E3%83%87%E3%83%BC%E3%82%BF%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%E6%99%82%E3%81%AE%E6%97%A5%E4%BB%98%E3%82%AB%E3%83%A9%E3%83%A0%E3%81%8Ctypecastexception

http://kechanzahorumon.hatenadiary.com/entry/2012/09/11/122847

http://www.masatom.in/pukiwiki/Java/DBUnit/Excel%A5%B7%A1%BC%A5%C8%A4%C7Import,Export%A4%B9%A4%EB/

 http://www.amazon.co.jp/%E7%B5%8C%E9%A8%93%E3%82%BC%E3%83%AD%E3%81%A7%E3%82%82%E3%81%A7%E3%81%8D%E3%82%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E7%8F%BE%E5%A0%B4%E3%81%AE%E5%8D%98%E4%BD%93%E3%83%86%E3%82%B9%E3%83%88-%E7%89%87%E6%A1%90-%E4%B8%80%E5%AE%97/dp/4798118915

-Database, Java
-,

執筆者:


comment

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

関連記事

no image

HAVING句について NULL時の動き

HAVING句のNULLがあった時の挙動にたいしてメモリます。 COUNTの処理 対象上の列数を数えるのにCOUNTを使うと思いますが、COUNT(*)とCOUNT(列名)では動きが若干違っており、前 …

no image

Postgres リモートホストからの接続他

今まで使ってきたデータベースはMySQLがほとんどなのですが、最近少し、Postgresを触っています。 今回はパスワードの設定とリモートからの接続など。 Contents1 postgresへのログ …

no image

メソッドのtransient

エンティティを作成するときに、データベースのカラムにない値をプロパティを持たせるためにはtransientという修飾子が必要です。 参考リンク フィールド以外のプロパティをエンティティに持たせる 通常 …

no image

EXISTSについて

今回はEXISTSについてです。 実務では伝票と明細との検索関連の処理で結構出てきます。 なお、達人に学ぶ~では論理学について少しふれており、この領域を本気で理解する場合は論理学を勉強する必要がありま …

no image

Seleniumでの画面テスト

普段テストはJunitで単体テストを書いていますが、画面からのテストなどは当然チェックできません。 フレームワークだとどうしても内部構造がわからず画面から直接うごかして確認しなくてはいけないようなケー …

アーカイブ