Handbuch
Version 8.0.1 |
ResolverRegistry
Alle Arten von Resolvern können mittels resolvers
Modul in Jython
oder Groovy Skripten implementiert werden wie in Abschnitt 53.1
beschrieben. Dies sollte für den normalen Gebrauch ausreichen. Nur wenn Sie im Detail
verstehen wollen, wie die ResolverRegistry
selbst funktioniert, oder wenn
Sie Resolver in Java implementieren wollen, sollten Sie auch die folgenden Abschnitte
lesen.
Das vorliegende Kapitel beschreibt, wie Sie Resolver direkt durch Java-Klassen implementieren. Diese Methode führt allerdings dazu, dass ein Teil Ihrer Applikation von den QF-Test Klassen abhängig wird. Auch aus diesem Grund ist es vorzuziehen, die Resolver Interfaces in Jython oder Groovy zu implementieren. Dadurch kann der gesamte Mechanismus strikt vom SUT getrennt bleiben und hat keinerlei Einfluss auf dessen Entwicklungsprozess.
Zusätzlich zu der hier beschriebenen Registrierung der Resolver müssen die entsprechenden Resolver Interfaces implementiert werden. Diese sind ab Abschnitt 53.1.7 ff beschrieben.
Auf Java-Ebene werden Resolver dadurch kompliziert, dass die Methoden als Interface definiert und von einer Klasse implementiert werden müssen. Von dieser Klasse muss eine Instanz erzeugt und bei QF-Test registriert werden. Wenn es nicht auf Anhieb funktioniert, muss die Instanz deregistriert werden, bevor eine neue Klasse erstellt und eine Instanz davon registriert werden kann. Andernfalls könnte es zu Konflikten zwischen den beiden Versionen des Resolvers kommen. Dazu kommt noch Code für die Fehlerbehandlung, insgesamt also ein Vielfaches an Ballast im Vergleich zur eigentlichen Substanz.
Ebenso wie für das resolvers
Modul gilt, dass alle Exceptions,
die während der Ausführung eines Resolvers auftreten, von der
ResolverRegistry
abgefangen werden. Es wird allerdings nur eine kurze Meldung
und kein Stacktrace ausgegeben, weil insbesondere globale Resolver sehr oft aufgerufen
werden können. Somit würde ein Resolver, der einen Bug hat, durch die Ausgabe von
Stacktraces für jeden Fehler das Client-Terminal überfluten. Daher sollten Resolver
ihre eigenen Fehlerbehandlungsroutinen enthalten. Dabei können zwar immer noch extrem
viele Ausgaben erzeugt werden, aber speziell für Skripte sind diese
hilfreicher als Java-Stacktraces.
Auch das in Abschnitt 53.1.1 und
Abschnitt 53.1.2 Gesagte
gilt für die ResolverRegistry
, sofern es nicht spezifisch ist für Skripte
oder das resolvers
Modul.
Die Singleton Klasse
de.qfs.apps.qftest.extensions.ResolverRegistry
ist die zentrale Agentur für die Registrierung und das Entfernen
von Resolvern.
Die API der ResolverRegistry
enthält keine großen
Überraschungen:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Letzte Änderung: 10.9.2024 Copyright © 1999-2024 Quality First Software GmbH |