Während der Testentwicklung ist es manchmal notwendig alle QF-Test Variablen zu löschen, sowie alle
gestarteten Clients zu stoppen. Hierdurch wird sicher gestellt, dass eine spätere /
darauffolgende Testausführung nicht wegen eines Seiteneffekts einer vorherigen fehlschlägt. Dieses Verhalten kann z.B.
wegen fehlerhaft gesetzter globaler Variablen bzw. wegen eines sich im falschen Zustand befindenden
Clients passieren.
Für das Zurücksetzen aller QF-Test Variablen und Clients bietet sich Menüaktion
»Wiedergabe«-»Alles zurücksetzen«
an. Mithilfe eines TestRunListeners ist es möglich diese Aktion an die eigenen
Bedürfnisse anzupassen. Dadurch ist es z.B. möglich sicherzustellen, dass
- (bestimmte) clients bestehen bleiben
- bestimmte globale QF-Test Variablen wiederhergestellt werden
- bestimmte zusätzliche Aktionen ausgeführt werden, wie z.B. das Löschen globaler Jython variablen
Ein ResetListener stellt jede bei QF-Test registrierte Klasse dar, die das ResetListener
Interface de.qfs.apps.qftest.extensions.qftest.ResetListener
realisiert.
Zum Verwalten der bei QF-Test registrierten Klassen, stellt
der Runcontext die Methoden
addResetListener
, isResetListenerRegistered
und removeResetListener
bereit.
Das ResetListener Interface besteht hierbei aus den folgenden Methoden:
|
|
|
void afterReset() |
|
Set<String> beforeReset() |
Rückgabewert |
Ein java.util.Set<String> Objekt, dass die Namen aller
Clients beinhaltet, die nicht beendet/zurückgesetzt werden sollen.
|
|
|
|
Das folgende Beispiel beschreibt die Implementierung und Registrierung eines
ResetListners, der verhindert, dass die QF-Test Variable "client" durch
den Reset gelöscht wird, als auch dass das "client"
SUT beendet wird.
|
from java.util import HashSet
from de.qfs.apps.qftest.extensions.qftest import ResetListener
from de.qfs.apps.qftest.shared.exceptions import UnboundVariableException
class L(ResetListener):
def beforeReset(self):
try:
self.client = rc.lookup("client")
h = HashSet()
h.add(self.client)
return h
except UnboundVariableException:
self.client = None
def afterReset(self):
if self.client != None:
rc.setGlobal("client", self.client)
global resetListener
try:
resetListener
except:
resetListener = L()
rc.addResetListener(resetListener)
|
|
| | Beispiel 49.47: Beispielhafte Implementierung eines ResetListeners | |