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