[Seasar-user:3958] Re: [s2unit]DBのレコードをassertする場合の検証用データについて

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2006年 6月 24日 (土) 21:57:45 JST


中村です。

> DBのテーブルに対して検証を行う場合、S2UnitのassertEquals(String,DataTable,DataTable)を
> 使うことになりますが、テーブルのレコード順にあわせて検証用データを書かなければいけない
> ため、(バッチ処理等になると)検証用データを作るのがしんどいです。
> 
> # Excelからinsertした順番とテーブルのレコード順が違って困りました。
> 
> この場合、どのような対応をするのがいいでしょうか?
> 
> (1)org.seasar.extension.dataset.impl.SqlTableReader#setTable(String,String)をオーバー
> ライドして主キーの昇順でソートしてとってくる。Excelファイルはあらかじめ主キーの昇順で
> ソートしとく。
> ※複合キーの場合、DataBaseMataData#getPrimaryKeys()が返す主キーの順番とExcelファイル
> のソート順をあわせないといけない。

SqlTableReader#setSql(String sql, String tableName)
を使ってorder by句を含んだSQLを明示的に指定するというのはどうでしょうか。

あと、これは2.4.0 beta 3 からの変更ですが
SqlTableReaderはデフォルトで主キー昇順でデータを読み込むように
なっています。また、
SqlTableReader#setTable(String tableName, String condition, String sort)
というメソッドが追加されていて、このメソッドでソートを指定すること
もできます。

--
Toshihiro Nakamura





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