4.0.3+52.8
ResetListener

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 MethodenaddResetListener, isResetListenerRegistered und removeResetListener bereit.

Das ResetListener Interface besteht hierbei aus den folgenden Methoden:

 
 
void afterReset()
Diese Methode wird aufgerufen, nachdem alle Variablen und Clients zurückgesetzt wurden.
 
Set<String> beforeReset()
Diese Methode wird aufgerufen, bevor alle Variablen und Clients zurückgesetzt werden. Die Implementierung dieser Methode kann weiterhin verhindern, dass bestimmte von QF-Test gestartete SUTs durch das Ausführen von »Wiedergabe«-»Alles zurücksetzen« beendet werden.
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 52.50:  Beispielhafte Implementierung eines ResetListeners