[Seasar-user:11535] Re: [S2Dao]IDがSEQUENCE使用の場合におけるExcelの記述方法

はっしぃ [E-MAIL ADDRESS DELETED]
2007年 11月 8日 (木) 09:10:47 JST


こんにちは、はっしぃと申します。

> 【質問】
> IDカラムをプライマリキーに設定し、SEQUENCEによる自動採番を行っています。
> この際、S2DaoTestCaseにてテストを行う場合、
> Insert後のSELECT結果をExcelで確認するための良い方法はありますでしょう

現在のプロジェクトでは、以下のような手順でInsert系のテストを実施しております。
ご参考になれば幸いです。

■手順
 1.期待値エクセルでINSERTされるレコードのID項目にダミーの置換文字列("[ID]")を設定する
 2.期待値側のDataTableをの置換文字列部分をdao.insert結果のエンティティに設定されたIDで置換する
 3.期待値DataTableとDBのDataTableを比較


■サンプル

HogeDaoTest.java:
public void testInsert() {

    setupDb();

    Hoge hoge = new Hoge();
    hoge.setAaa(100005L);
    hoge.setBbb("8005");

    dao.insert(hoge);

    Map<String, Object> replacements = new HashMap<String, Object>();
    replacements.put("[ID]", hoge.getId());

    assertEqualsDataSet("Insert", replacements);

}

AbstractDataBaseTestCase.java:
protected void assertEqualsDataSet(String suffix, Map<String, Object>
replacements) {
    DataSet expect = getDataSet(suffix);

    int tableSize = expect.getTableSize();
    for (int i = 0; i < tableSize; i++) {

        DataTable expectTable = replaceObject(expect.getTable(i), replacements);
        DataTable actualTable = readDbByTable(expectTable.getTableName());

        assertEquals(expectTable, actualTable);
    }

}



Seasar-user メーリングリストの案内