Unit-Tests erstellen und pflegen
Warum und wann dieser Vorgang ausgeführt wird
Prozedur
-
Unit-Test-Template erstellen.
Die nachfolgenden Schritte sind nur erforderlich, wenn noch kein Unit-Test für das betreffende XQuery-Skript vorhanden ist.
- Das XQuery-Skript transformation/unit/generiere-tests.xquery in BaseX-GUI öffnen.
- Damit vorhandene Unit-Tests nicht überschrieben werden, sicherstellen, dass der Parameter $overwrite im XQuery-Skript generiere-tests.xquery den Wert no (Standardwert) hat.
-
Das XQuery-Skript ausführen.
Im Ergebnisfenster steht, welche Unit-Test-Templates neu geschrieben wurden.
Die generierten Unit-Test-Templates liegen im Verzeichnis transformation/unit/tests.
-
Unit-Test-Template anpassen.
- Das Unit-Test-Template in BaseX-GUI öffnen.
-
Die Beschreibung im Unit-Test-Template lesen (was soll die XQuery-Skript tun?)
Tipp:Wenn das erwartete Ergebnis der XQuery-Skript anhand der Dokumentation unklar ist, die entsprechende XQuery-Skript öffnen und versuchen zu verstehen, was das Ergebnis sein soll.
- Ein passendes unverändertes XML-Fragment in den Ordner transformation/unit/xml/[TESTNAME]/context legen.
- Ein passendes verändertes (erwartetes) XML-Fragment in den Ordner transformation/unit/xml/TESTNAME/expected legen.
-
Den XPath im Default-Test des Unit-Test-Templates (
$test:default()) so anpassen, dass er möglichst direkt auf die Stelle verweist, die das XQuery-Skript ändert.declare %unit:test function test:default() { [...] unit:assert-equals( (: vergleiche XML aus dem Ordner context... :) $context/meta/autorengruppe[@typ eq 'herausgeber] , (: ...mit dem dazu passenden (ID-Vergleich) XML aus dem Ordner expected :) $expected-seq[@id eq $id]/meta/autorengruppe[@typ eq 'herausgeber] ) };Anmerkung:Wird der XPath nicht angepasst, kann es zu Java Exceptions und/oder einer wenig hilfreichen Unit-Test-Ausgabe kommen. -
Falls erforderlich, weitere XML-Dateien hinzufügen (z. B. verschiedene Instanzen) und/oder weitere Tests nach dem gleichen Muster wie
test:default()einfügen
-
Unit-Test zusammen mit den XML-Fragmenten ins SVN einchecken.
Tipp:Damit die XML-Fragmente mit eingecheckt werden, im Commit-Dialog das Kontrollkästchen Show unversioned files aktivieren, die relevanten Dateien bei gedrückter Umschalttaste mit der Maus markieren, auf die Auswahl mit der rechten Maustaste klicken und dann im Kontextmenü den Befehl Add auswählen.
