目次へ

2.2 テストデータの作成

データベースを操作する単体テストでは、メソッド実行前にテーブルにテストデータを投入したり、メソッド実行後にテーブルのデータを元に戻したりしなければいけません。この「データの整備」処理のプログラムは煩雑な上、実装者によりまちまちでした。これが、テストクラスの可読性と保守性を下げていた最大の原因です。DBUnitは、テーブルのデータ整備する機能を提供しています。

 まずテストデータを準備します。DBUnitでは、テストデータはXMLファイルで用意するのが一番簡単です。

<dataset>
   <(テーブル名) (カラム名)="(値)"  ..../>
   <(テーブル名) (カラム名)="(値)"  ..../>
</dataset>

ルート要素はdatasetです。テーブル名の要素を作成し、「カラム名="値"」の形式で指定します。今回、テストに必要なのは、Accept_Orderテーブルの以下のデータです。

o_num c_num p_num dc_rate option_price employee accept_date
5001 1000 501 5 30 101 2004-01-01

上のデータをaccept_orderテーブルに登録するための、XMLファイルは以下のようになります。

accept_order_data.xml
<?xml version='1.0' encoding="EUC-JP"?>
<dataset>

<accept_order o_num="5001"
              c_num="1000"
              p_num="501"
              dc_rate="5"
              option_price="30"
              employee="101"
              accept_date="2004-01-01" />
</dataset>
   

今回は、accept_orderテーブルに値を登録したいので、「accept_order」という名前の空要素を作成します。accept_order要素の属性は、各カラムのデータを表します。例えば「o_num="5001"」はo_numカラムの値が5001であることを表しています。

日付型のカラムの値を表現する場合は、以下のフォーマットで記述します。

データ型 フォーマット
DATE yyyy-MM-dd
TIME HH:mm:ss
TIMESTAMP yyyy-MM-dd HH:mm:ss.SSS000000

この例では、accept_orderテーブルのaccept_dateは日付型です。accept_dateに「2004年1月1日」を表すDATE型の値を挿入しようと考えています。この場合、accept_order要素のaccept_date属性の値には「2004-01-01」と指定します。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp