Script-Helper-Methoden verweisen mit Hilfe der Testobjektübersicht auf ein Objekt in der getesteten Anwendung. Functional Test
sucht nach solchen zugeordneten Objekten immer dann, wenn eine Methode für das Objekt aufgerufen wird. In einigen Fällen
kann es jedoch sinnvoll sein, dies zu vermeiden. Beispiel: Sie wollen viele Methoden direkt für dasselbe Objekt aufrufen, und
es wäre für Functional Test zu zeitintensiv, das Objekt bei jedem Aufrufen einer Methode für dieses Objekt
zu suchen. Mit Hilfe der Methode TestObject.find
können Sie ein Objekt suchen,
ohne dass Functional Test Methoden für dieses Objekt aufruft. TestObject.find
gibt dann ein neues TestObject
zurück, das eine andere Referenz auf das Objekt
in der getesteten Anwendung enthält. Diese Referenz wird auch als gebundene Referenz,
gefundene Referenz oder nicht zugeordnete Referenz bezeichnet.
Eine gebundene Referenz behält den Zugriff auf das Objekt in der getesteten Anwendung, bis Sie explizit die Registrierung für die Referenz zurücknehmen. Functional Test nimmt die Registrierung für gebundene Referenzen erst dann zurück, wenn die gesamte Wiedergabe beendet ist, und nicht wenn die Scriptausführung endet. So lange eine gebundene Referenz auf ein Objekt existiert, kann Functional Test verhindern, dass das Objekt in der Anwendung vollständig freigegeben wird. Wenn Sie beispielsweise eine gebundene Referenz auf ein Java-Objekt halten, wird für das Java-Objekt keine Garbage-Collection durchgeführt. Sie müssen die Registrierung für alle erstellten gebundenen Referenzen explizit zurücknehmen, sobald Sie diese nicht mehr benötigen.
Bei einem normalen Functional Test-Script sind die einzigen TestObjects
-Objekte, die
zugeordnete Referenzen enthalten, die Methoden aus den Helper-Scripts. Alle anderen TestObjects
-Objekte
enthalten gebundene Referenzen, deren Registrierung zurückgenommen werden muss. Beispiel:
Die Methode TestObject.getTopParent
ist explizit so deklariert, dass
ein TestObject
-Objekt zurückgegeben wird. Andere Methoden sind so deklariert, dass
sie ein java.lang.Object
-Objekt zurückgeben. Sie können jedoch auch ein
TestObject
-Objekt zurückgeben, dessen Registrierung zurückgenommen werden muss, wie beispielsweise
TestObject.getProperty
.
RationalTestScript verfügt über verschiedene Methoden, über die Referenzen
auf TestObjects
-Objekte gelöscht werden. Hierzu gehören u. a.
com.rational.test.ft.script.RationalTestScript.unregister
und unregisterAll
. (Informationen zu
diesen Methoden finden Sie unter Functional Test - API-Referenz.)
Objekte, die von der getesteten Anwendung zurückgegeben werden und die keine TestObjects
-Objekte sind,
sind Objekte, die für einen Wert stehen. Der Typ eines solchen Objekts wird auch als Werteklasse bezeichnet. Eine Werteklasse
ist eine Kopie des Objekts in der getesteten Anwendung und keine Referenz auf ein Objekt in der getesteten Anwendung. Gängige Beispiele für Werteklassen sind java.lang.Integer
und java.awt.Rectangle
.
Der Functional Test-Recorder und die Functional Test-Assistenten generieren nur Code, der
Werteklassen zurückgibt. Beispiel: Eine Eigenschaft, die Sie im Anwendungsbeispiel "Objekteigenschaften" sehen, ist eine
Eigenschaft, deren Wert eine Werteklasse ist. Sie können TestObject.getNonValueProperties
aufrufen,
um die Referenzeigenschaften zu suchen, die für ein bestimmtes Objekt verfügbar sind. Sie können
TestObject.getMethods
aufrufen, um eine Liste aller Methoden anzuzeigen, die
Sie über TestObject.invoke
aufrufen können.
Gehen Sie bei der direkten Verwendung von TestObjects
-Objekten, die
Referenzen zu Objekten in der getesteten Anwendung enthalten, besonders vorsichtig vor, da
die Anwendung dadurch instabil werden kann. Nehmen Sie die Registrierung für solche TestObjects
-Objekte
so schnell wie möglich wieder zurück.
Nutzungsbedingungen | Feedback
(C) Copyright IBM Corporation 2002, 2004. Alle Rechte vorbehalten.