かまたま日記3

プログラミングメイン、たまに日常

DBUnitでデータを比較するときの注意

ずっと前に嵌った現象に懲りずにまた嵌ったのでメモっときます。

★データファイルからDataSetを作成したときはDBの並び順に注意
→ データファイルのデータの並び順とそこから登録されたデータの並び順は異なる


以下のようなケースでもデータファイル次第で
エラーになる場合があります
 1.XMLファイルからDataSetを作ってDBに登録する
  ※インポートファイルをimport.xmlとする
 ↓
 2.IDatabaseConnectionを使って現在のデータベースのDataSetを取得
  ※この時1.から何もDBに手を加えていません。
 ↓
 3.再度、import.xmlからDataSetを作ってAssertion#assertEquals
  メソッドを使ってITable同士を比較

<インポートファイル例>
 1行目と2行目が逆、もしくはこの状態のどちらかはエラーになります。
 【import.xml
  
  

Assertion#assertEqualsメソッドも特に並び順なんて気にしなくていいように融通を聞かせてくれてもいいのに。。。

<追記>
実はソートする方法があったみたいです。。。
iBatisでDBUnit:Javaってまだいけますか