DB Unit should ignore order of rows

2019-02-10 10:37发布

Is there a way telling DB-Unit to ignore the order in which rows should be compared? My problem is, that I do not know in which order the rows will be written to the database, but DB-Unit forces me to give an ordered list.

What I want dbunit to do is:

  • check that number of rows in database and expected dataset match (Solved: Works out of the box
  • check whether each rows will be found only once in the result-set. (NOT SOLVED)

Any ideas?

1条回答
对你真心纯属浪费
2楼-- · 2019-02-10 11:34

Solved this issue for me. I'm sorting the rows of the actual and expected tables. Therefore I use all columns which can be found in expected table. This approach might result in problems if the table you are checking is large but in my case it is not. :-)

Column[] expectedColumns = expectedTable.getTableMetaData().getColumns();
ITable sortedExpected = new SortedTable(expectedTable, expectedColumns);
ITable sortedActual = new SortedTable(actualTable, expectedColumns);
Assertion.assertEquals(sortedExpected, sortedActual);
查看更多
登录 后发表回答