有没有办法告诉 DB-Unit 忽略应该比较行的顺序?我的问题是,我不知道行将按什么顺序写入数据库,但是 DB-Unit 强制我给出一个有序列表。
我想要 dbunit 做的是:
- 检查数据库中的行数和预期的数据集匹配(已解决:开箱即用
- 检查每行是否只会在结果集中找到一次。(未解决)
有任何想法吗?
为我解决了这个问题。我正在对实际表和预期表的行进行排序。因此,我使用了可以在预期表中找到的所有列。如果您要检查的表很大,这种方法可能会导致问题,但在我的情况下它不是。:-)
Column[] expectedColumns = expectedTable.getTableMetaData().getColumns();
ITable sortedExpected = new SortedTable(expectedTable, expectedColumns);
ITable sortedActual = new SortedTable(actualTable, expectedColumns);
Assertion.assertEquals(sortedExpected, sortedActual);