fc2ブログ
DBUtilsでテストデータにExcelを使用する。


仕事で使うので、調べました。XMLでやってもいいけど、やっぱりExcelの方がなじみがあるからね。

DBUnits・・・データベースを使用したロジックの単体テストを支援するツール。

■Excelファイルにエクスポート
public class XLSExporter {

    public static void main(String[] args) throws Exception {
        DatabaseConnection conn = new DatabaseConnection(
                                       ConnectionManager.getConnection(), "RD");

        IDataSet dataset = conn.createDataSet();
        XlsDataSet.write(dataset, new FileOutputStream("data/export.xls"));
    }

}
 XlsDataSet.writeメソッドを使うことで書き出すことができる。

■Excelから読み込んで、結果と比較
protected void setUp() throws Exception {

    // ①テストデータを投入する
    IDataSet dataSet = new XlsDataSet(
                                           new FileInputStream("data/export.xls"));
    DatabaseOperation.CLEAN_INSERT.execute(conn, dataSet);

}

public void testステータス更新() throws Exception {

    // ②更新処理実行
    dao.updateStatus("20070719L19780823", "akokubu");

    // ③DBから実際のデータの取得
    IDataSet databaseDataSet = conn.createDataSet();
    ITable actualTable = databaseDataSet.getTable("STATUS_TBL");

    // Tempディレクトリにバックアップ
    File file = File.createTempFile("STATUS_TBL", ".xls");
    XlsDataSet.write(databaseDataSet, new FileOutputStream(file));

    // ④期待値データの取得
    IDataSet expectedDataSet = new XlsDataSet(
     new FileInputStream("/StatusDaoTest/expect_updateStatus.xls"));
    ITable expectedTable = expectedDataSet.getTable("STATUS_TBL");

    // ⑤期待値データと実際のデータの比較
    Assertion.assertEquals(expectedTable, actualTable);

}
 ①データセットには、XlsDataSetを使いテストデータ投入する。
 ②処理を実行。
 ③DBから更新後のデータを取得する。
 ④期待値データをExcelから読み込む。
 ⑤DBから取得したデータと期待値データを比べる。

スポンサーサイト



別窓 | お仕事 | コメント:0
200707312359
<<ジャックと豆の木 | 自由すぎるよね。。 | ファンタトロピカルマンゴー>>
この記事のコメント
COMMENT
コメントの投稿
 

管理者だけに閲覧
 

| 自由すぎるよね。。 |