2012-10-30 8 views
5

Gibt es eine Möglichkeit, DB-Unit die Reihenfolge zu ignorieren, in der Zeilen verglichen werden sollen? Mein Problem ist, dass ich nicht weiß, in welcher Reihenfolge die Zeilen in die Datenbank geschrieben werden, aber DB-Unit zwingt mich, eine geordnete Liste zu geben.DB-Einheit sollte Reihenfolge der Zeilen ignorieren

Was ich DBUnit tun möchte, ist:

  • prüfen, ob Anzahl der Zeilen in der Datenbank und die erwarteten Daten-Set Match (Gelöst: Funktioniert die Box aus
  • Überprüfung, ob jeder Zeilen nur einmal gefunden werden in das Ergebnis-Set. (nicht gelöst)

Irgendwelche Ideen?

Antwort

9

dieses Problem gelöst für mich. ich bin das Sortieren der Zeilen der tatsächlichen und erwarteten Tabellen. Deshalb verwende ich alle Spalten, die in der erwarteten Tabelle gefunden werden können. Dieser Ansatz kann zu Problemen führen, wenn die zu überprüfende Tabelle groß ist, in meinem Fall jedoch nicht. :-)

Column[] expectedColumns = expectedTable.getTableMetaData().getColumns(); 
ITable sortedExpected = new SortedTable(expectedTable, expectedColumns); 
ITable sortedActual = new SortedTable(actualTable, expectedColumns); 
Assertion.assertEquals(sortedExpected, sortedActual); 
Verwandte Themen