2.4.5. Tabellenspalten aus Vergleichen ausschließen

Bei der Überprüfung von erwarteten Testdaten stellt checkerberry db eine Zuordnung der zu vergleichenden Zeilen aus den Testdaten und der Datenbank her. Danach werden alle Spalten der Zeilen miteinander verglichen. Wenn es zu Abweichungen kommt, wird eine Fehlermeldung erzeugt und der Test schlägt fehl.

In vielen Fällen enthalten die Tabellen jedoch Spalten, die von dem Vergleich ausgeschlossen werden können. Dies kann für technische Informationen relevant sein, die ggf. dynamisch in die entsprechenden Datenbankzeilen eingefügt werden wie z.B. Änderungszeitstempel oder generierte IDs. Diese Spalten können einfach aus dem Vergleich ausgeschlossen werden, sodass Sie bei dem Vergleich von zwei Zeilen nicht berücksichtigt werden.

Beispiel 2.18. Anpassen der auszuschließenden Spalten

public void testGetUser() throws Exception {
  …
  // Holen des Testhandlers.
  DbTestHandler testHandler = getEnvironment().getTestHandler();
  // Allgemeine Datenbankbeschreibung holen.
  DatabaseDescription dbDescription = testHandler.getDatabaseDescription();
  // Tabellenbeschreibung für Tabelle USERS holen.
  DatabaseTableDescription tableDescription
      = dbDescription.getTableDescription("USERS");
  // Spalte BIRTHDATE aus dem Vergleich ausschließen.
  tableDescription.addExcludedColumns("BIRTHDATE");
  …
}


Das Code-Beispiel zeigt wie die Spalte BIRTHDATE der Tabelle USERS vom Vergleich ausgeschlossen wird. Da jeder Test eine eigene Kopie der Datenbankbeschreibung verwendet, bezieht sich diese Änderung nur auf die Methode testGetUser. Die Spalten können jedoch auch innerhalb des DatabaseDescriptionCallback ausgeschlossen werden. Dies wirkt sich dann auf alle Tests aus.