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“ 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.