[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 メーリングリストの案内