Dieses Proxymuster veranschaulicht, wie ein Proxy erweitert wird, um weitere Eigenschaften hinzuzufügen, wie außerdem eine einfache Wertklasse und ein Wertemanager definiert werden und wie das Aufzeichnungsverhalten von Functional Tester erweitert wird.
Erweiterte Funktionalität: Weitere Eigenschaften hinzufügen
In diesem Proxymuster werden die Proxymethoden public java.util.Hashtable getProperties() und public Object getProperty(String propertyName) erweitert, um die neue Eigenschaft simpleValue hinzuzufügen.
Anmerkung: Es müssen nicht für alle zusätzlichen Eigenschaften Wertklassen und Wertemanager definiert werden.
Einfache Wertklasse und Wertemanager definieren
In diesem Proxymuster wird ein benutzerdefinierter Datentyp (Wertklasse und Wertemanager) als Rückgabewert der Eigenschaft simpleValue zurückgegeben.
Aufzeichnungsfunktionalität erweitern
In diesem Proxymuster wird die Methode public void processSingleMouseEvent(IMouseActionInfo
action) zur Erweiterung des Aufzeichnungsverhaltens erweitert, so dass einzelne Mausklicks als doubleclick()-Methoden und doppelte Mausklicks als click()-Methoden aufgezeichnet werden.
Binärdateien implementieren
Kopieren Sie die Dateien ButtonOverrideProxy.jar und ButtonOverrideProxy.rftcust in das Verzeichnis für die Anpassung, und starten Sie dann Functional Tester erneut, um die getestete Musteranwendung (application-under-test, AUT) zu testen.
Hinzugefügte Eigenschaft und Wertklasse prüfen
Sie können die als Teil der AUTs AWTButtonApp und JButtonApp bereitgestellten Steuerelemente java.awt.Button und javx.swt.JButton testen.
- Führen Sie vor dem Implementieren der Proxys testObject().getProperty("simpleValue") aus.
Dadurch wird die folgende Fehlernachricht ausgelöst: simpleValue is not a valid property (simpleValue ist keine gültige Eigenschaft).
- Führen Sie nach dem Implementieren der Proxys testObject().getProperty("simpleValue") aus.
Dadurch wird der Wert FuBar zurückgegeben.
Aufzeichnungsverhalten prüfen
- Vor dem Implementieren der Proxys zeichnet "java.awt.Button" einzelne Mausklicks als button.click() und doppelte Mausklicks als button.doubleClick() auf.
- Nach dem Implementieren der Proxys zeichnet "java.awt.Button" einfache Mausklicks als button.doubleClick() und doppelte Mausklicks als button.Click() auf.
Die Methoden click() und doubleClick() werden also gegeneinander ausgetauscht.