2.4.8.2. Manuelle Prüfung einzelner Autoparameter

Eine besondere Verwendung der Autoparameter ergibt sich, wenn nur ein Vorkommen eines Autoparameters in den Testdaten verwendet wird. Das folgende Code-Beispiel enthält eine derartige Situation.

Beispiel 2.25. Beispiel Autoparameter: Einmalige Definition

<dataset>
  // Der Autoparameter userId ist nur einmal definiert. Die Spalte NAME
  // ist die Lookup-Key-Spalte.
  <USERS ID="#{userId}" NAME="Homer"/>
</dataset>


Die erwarteten Testdaten enthalten einen Eintrag für die Tabelle USERS. Die Spalte NAME ist die Lookup-Key-Spalte und die Spalte ID enthält den Autoparameter userId.

Abbildung 2.15. Beispiel Autoparameter: Spezialfall einfache Definition

Beispiel Autoparameter: Spezialfall einfache Definition


Abbildung 2.15, „Beispiel Autoparameter: Spezialfall einfache Definition“ stellt die Ermittlung des Werts für den Autoparameter userId dar. Über den Lookup-Key NAME mit dem Wert „Homer“ wird die Zuordnung zwischen den erwarteten Testdaten und der Datenbank hergestellt. Der Wert von userId wird auf „U4711“ gesetzt. Da nur ein Vorkommen für den Autoparameter userId existiert, wird er lediglich auf den Wert aus der Datenbank gesetzt, ohne dass die Korrektheit des Wertes überprüft wird. Dieses Verfahren lässt sich somit verwenden, um die Überprüfung der erwarteten Testdaten gezielt für einzelne Werte zu umgehen. Alternativ kann der Wert des Autoparameters in der Testmethode manuell geprüft werden, wie das folgende Code-Beispiel zeigt.

Beispiel 2.26. Beispiel Autoparameter: Manuelle Prüfung

public void testSaveUser() throws Exception {
  …
  // Testhandler holen.
  DbTestHandler testHandler = getEnvironment().getTestHandler();
  // Datenbank gegen erwartete Testdaten prüfen. Hier werden implizit die
  // Autoparameter ermittelt.
  testHandler.assertEqualsExpected();

  // Holen des Autoparameter-Kontexts.
  AutoParameterContext context = testHandler.getAutoParameterContext();
  // Auslesen der userId.
  String id = context.getAutoParameterValue("userId");
  // Manuelle Prüfung auf „U“ als Startzeichen.
  assertTrue(id.startsWith("U"));
}
  …


In dem Code-Beispiel wird der Wert des Autoparameters wie bereits zuvor beschrieben aus dem AutoParameterContext gelesen. Danach wird geprüft, ob der Wert mit einem „U“ beginnt. Dieses Beispiel zeigt, dass man durch das vorgestellte Vorgehen einzelne Werte aus der allgemeinen Überprüfung der Testdaten herausnehmen kann, um beispielsweise speziellere Prüfungen direkt in der Testmethode vorzunehmen. Generell lassen sich spezifische Prüfungen jedoch sinnvoller über eigene Validatoren abbilden, die in Abschnitt 2.4.3, „Überprüfen der Ergebnisse durch Validatoren“ beschrieben sind.