読者です 読者をやめる 読者になる 読者になる

DbUnit2.4.3

DbUnitを使用する時の流れとしては、
1.現在のテーブル情報をバックアップ(データファイルとして出力)
2.テスト用にデータをインポート
3.テスト実行
4.1のデータファイルをインポート


という形でテストクラスを組むかと思います。
データをExcelで管理できるので私はDBアクセス部分のテストによく使います。


ですが、現在のバージョン(2.4.3)において、1の処理において
Timestamp型のデータをExcelに出力すると
うまく保存されません(2.4系は全滅でした)。


こんな感じの処理です。

    // 接続先に登録されている全てのテーブルが取得対象
    IDataSet dataSet = databaseConnection.createDataSet();
    File backUpFile = new File("backUp.xls");

    // FileにExcelフォーマットで出力
    OutputStream os = null;
    os = new FileOutputStream(backUpFile);
    XlsDataSet.write(dataSet, os);

databaseConnectionはインターフェースIDatabaseConnectionのオブジェクトです。
Excelに書き込む箇所がまずい模様。


なので、XMLに出力することにしました。

    // 接続先に登録されている全てのテーブルが取得対象
    IDataSet dataSet = databaseConnection.createDataSet();
    File backUpFile = new File("backUp.xml");

    // FileにXMLフォーマットで出力
    OutputStream os = null;
    os = new FileOutputStream(backUpFile);
    XmlDataSet.write(dataSet, os, "UTF-8");

これで、とりあえずバックアップできたようです。
うーん、Excelまわりの挙動テストしたのかなー?


テスト用にはExcelでデータファイルを作って、
バックアップ用にはXMLに落としておく。
しばらくはこれで運用してみましょう。