数据库单元应忽略行的顺序

Ehm*_*Kah 5 java database testing dbunit

有没有办法让DB-Unit忽略比较行的顺序?我的问题是,我不知道行将以哪种顺序写入数据库,但DB-Unit迫使我给出一个有序列表.

我想要dbunit做的是:

  • 检查数据库和预期数据集中的行数是否匹配(已解决:开箱即用
  • 检查每个行是否只在结果集中找到一次.(未解决)

有任何想法吗?

Ehm*_*Kah 9

为我解决了这个问题.我正在排序实际和预期表的行.因此,我使用可在预期表中找到的所有列.如果您检查的表很大,这种方法可能会导致问题,但在我的情况下则不然.:-)

Column[] expectedColumns = expectedTable.getTableMetaData().getColumns();
ITable sortedExpected = new SortedTable(expectedTable, expectedColumns);
ITable sortedActual = new SortedTable(actualTable, expectedColumns);
Assertion.assertEquals(sortedExpected, sortedActual);
Run Code Online (Sandbox Code Playgroud)