2.4.12. Verwenden von leeren Tabellen

Möchte man bei dem Einspielen von initialen Testdaten eine Tabelle leer lassen, so wird das implizit dadurch erreicht, dass man keine Datensätze für diese Tabelle definiert. Über die Angabe des Tags EMPTY_TABLE, kann jedoch auch explizit sichergestellt werden, dass keine Datensätze für diese Tabelle eingespielt werden. Der Name der Tabelle wird in diesem Fall über das Attribut TABLENAME angegeben.

Beispiel 2.37. Explizite Angabe einer leeren Tabelle

<dataset>
  <!-- Die Tabelle PIZZA soll leer sein. -->
  <EMPTY_TABLE TABLENAME="PIZZA" />
  <!-- Die Tabelle USERS soll Daten enthalten. -->
  <USERS NAME="Marge" SURNAME="Simpson" />
  <USERS NAME="Homer" SURNAME="Simpson" />
  <USERS NAME="Bart" SURNAME="Simpson" />
  <USERS NAME="Lisa" SURNAME="Simpson" />
  <USERS NAME="Maggie" SURNAME="Simpson" />
</dataset>


Die explizite Angabe einer initial leeren Tabelle garantiert, dass keine Datensätze für diese Tabelle eingespielt werden. Dies könnte z.B. passieren, wenn initialen Testdaten für diese Tabelle in einer inkludierten Datei vorhanden sind. Entsteht ein solcher Widerspruch in den Testdaten, wird die checkerberry db Fehlermeldung CB-DB-1044 erzeugt.

Das EMPTY_TABLE Tag kann nicht nur in den initialen, sondern auch in den erwarteten Testdaten genutzt werden. Die folgende Tabelle stellt den Unterschied zwischen impliziter Annahme einer leeren Tabelle durch Weglassen der Definition und expliziter Angabe eines EMPTY_TABLE Tags dar.

 Initiale TestdatenErwartete Testdaten
Es sind Datensätze für Tabelle XXX definiert.Die Datensätze werden in die Datenbank eingespielt.Es wird überprüft, ob die Tabelle genau diese Datensätze enthält.
Es sind keine Datensätze für die Tabelle XXX definiert.Die ggf. vorhandenen Datensätze der Tabelle werden in der Datenbank gelöscht.Diese Tabelle wird während der Überprüfung nicht berücksichtig, d.h. auch wenn für diese Tabelle Datensätze in der Datenbank vorhanden sind, verläuft die Überprüfung positiv.
Für die Tabelle XXX ist das EMPTY_TABLE Tag definiert.Die ggf. vorhandenen Datensätze der Tabelle werden in der Datenbank gelöscht.Es wird überprüft, ob diese Tabelle in der Datenbank leer ist.
Es sind Datensätze für Tabelle XXX definiert und für die Tabelle XXX ist das EMPTY_TABLE Tag definiert.Die checkerberry db Fehlermeldung CB-DB-1044 wird erzeugt.Die checkerberry db Fehlermeldung CB-DB-1044 wird erzeugt.