5

行を比較する順序を無視するようにDB-Unitに指示する方法はありますか?私の問題は、行がデータベースに書き込まれる順序がわからないことですが、DB-Unitは順序付きリストを指定するように強制します。

dbunitに実行させたいことは次のとおりです。

  • データベースの行数と予想されるデータセットが一致することを確認します(解決済み:箱から出して動作します)
  • 各行が結果セットで1回だけ見つかるかどうかを確認します。(未解決)

何か案は?

4

1 に答える 1

10

この問題を解決しました。実際のテーブルと予想されるテーブルの行を並べ替えています。したがって、予想されるテーブルにあるすべての列を使用します。チェックしているテーブルが大きい場合、このアプローチは問題を引き起こす可能性がありますが、私の場合はそうではありません。:-)

Column[] expectedColumns = expectedTable.getTableMetaData().getColumns();
ITable sortedExpected = new SortedTable(expectedTable, expectedColumns);
ITable sortedActual = new SortedTable(actualTable, expectedColumns);
Assertion.assertEquals(sortedExpected, sortedActual);
于 2012-10-31T06:27:44.503 に答える