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

MySQLでtext型が大量にあるもののリストア 

MySQLでのリストアについて。 先日実務でtext型のカラムが複数あるテーブルを読もうとしたら下記エラーがでてこけました。

なにやら …

no image

mysqlデータのCSV出力

ガチンコ塾のブログでもかいたのですが、行動力が大切だなーと思う今日この頃。 社長が熟練のJavaエンジニアで基本的に聞けば、基本的に解決することが多いのですが、外部の勉強会などにも出て情報収集の必要性 …

no image

SQL基礎 case&groupbyの活用について

主に集計タイプの計算で大活躍するgroupbyについて。 主な用途は集計とカット。特にcase式と連動した集計はかなり使える 例 nameとageで構成されたテーブルがあるとして、年代ごとの人数を出し …

no image

アンチパターン 参照渡しと値渡し+キー情報の設定+同一値を複数テーブルに配置+正規化が不十分+集計表+不適切なステータス値

本日は自分がデータベースの設計をしていて気を付かないといけないなーと思った点などを。 注意点としては設計のミスは実装で取り返しにくいことが多いので極力気を付けましょう。あといろいろなテーブルのパターン …

no image

SQL基礎 case式について

case式に関して。 集約系の関数では複雑な処理を一気に行うことができる。 case式は1列のみ有効。複数の列に対して行うことはできない。 case ~ when ・・・thenではwhenが評価され …