Helper-Script-Methoden verweisen mit Hilfe der Testobjektübersicht auf ein Objekt in der getesteten Anwendung. Von Functional Tester wird immer dann nach den so zugeordneten Objekten gesucht, wenn eine Methode für das betreffende Objekt aufgerufen wird. In einigen Fällen ist diese Vorgehensweise von Functional Tester möglicherweise nicht erwünscht.
Wenn Sie beispielsweise verschiedene Methoden direkt für ein und dasselbe Objekt aufrufen müssten, würde Functional Tester viel Zeit dabei verlieren, bei jedem Aufruf einer Methode für das Objekt erneut nach dem Objekt suchen zu müssen. Mit Hilfe der Methode TestObject.find können Sie ein Objekt suchen, ohne dass Functional Tester 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 so lange den Zugriff auf das Objekt in der getesteten Anwendung, bis Sie die Registrierung der Referenz explizit zurücknehmen. Von Functional Tester werden die Registrierungen von gebundenen Referenzen nur dann zurückgenommen, wenn die komplette Wiedergabe (und nicht nur das Script) beendet ist. Solange eine gebundene Referenz zu einem Objekt besteht, wird die Beweglichkeit des Objekts in der Anwendung von Functional Tester möglicherweise eingeschränkt. Besteht beispielsweise eine gebundene Referenz zu einem Java-Objekt, wird für dieses Java-Objekt keine Garbage-Collection durchgeführt. Sie müssen die Registrierung von gebundenen Referenzen daher immer sofort explizit zurücknehmen, wenn diese nicht mehr benötigt werden.
Die einzigen Testobjekte (TestObjects) mit zugeordneten Referenzen in einem normalen Functional Tester-Script sind 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 API-Referenz zu Functional Tester.
Objekte, die von der getesteten Anwendung ausgegeben werden und bei denen es sich nicht um Testobjekte (TestObjects) handelt, sind Objekte, die einen Wert repräsentieren. Dieser Typ von Objekt wird 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.
Functional Tester-Recorder und -Assistenten generieren ausschließlich Code, über den Werteklassen ausgegeben werden. Beispielsweise handelt es sich bei der Eigenschaft, die Sie im Anwendungsbeispiel "Object Properties" sehen, um 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.