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. Möchten Sie nach einem Objekt suchen lassen, ohne dass dazu von Functional Tester bestimmte Methoden für das Objekt aufgerufen werden, müssen Sie die Methode TestObject.Find anwenden. Über TestObject.Find wird ein neues Testobjekt (TestObject) mit einer anderen Referenz auf das Objekt in der getesteten Anwendung ausgegeben. 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. 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. So ist beispielsweise für die Methode TestObject.GetTopParent explizit die Ausgabe eines Testobjekts (TestObject) deklariert. Für andere Methoden ist die Ausgabe eines Systemobjekts (System.Object) deklariert, doch ist auch die Ausgabe eines Testobjekts (TestObject) möglich, für das die Registrierung zurückgenommen werden muss. Beispiel: TestObject.GetProperty.
RationalTestScript enthält zahlreiche Methoden, über die die Referenzen auf Testobjekte (TestObjects) zurückgenommen werden. Dazu zählen Methoden wie net.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 zurückgegeben werden und bei denen es sich nicht um TestObjects-Objekte handelt, sind Objekte, die für einen Wert stehen. Der Typ eines solchen Objekts wird auch als Werteklasse bezeichnet. Bei der Werteklasse handelt es sich um eine Kopie des Objekts in der getesteten Anwendung und nicht um eine Referenz auf ein Objekt in dieser Anwendung. Gängige Beispiele für Werteklassen sind Integer und System.Drawing.Rectangle.
Functional Tester-Recorder und -Assistenten generieren ausschließlich Code, über den Werteklassen ausgegeben werden. Beispiel: Eine Eigenschaft, die Sie im Anwendungsbeispiel "Objekteigenschaften" sehen, ist eine Eigenschaft, deren Wert eine Werteklasse ist. Sie haben die Möglichkeit, TestObject.GetNonValueProperties aufzurufen, um nach den Referenzeigenschaften für ein bestimmtes Objekt zu suchen. Über TestObject.GetMethods können Sie eine Liste aller Methoden anzeigen, die Sie über TestObject.Invoke aufrufen können.
Gehen Sie beim direkten Umgang mit TestObjects-Objekten, die Referenzen auf Objekte in der getesteten Anwendung enthalten, vorsichtig vor. Nur so können Sie eine Instabilität in der Anwendung vermeiden. Nehmen Sie die Registrierung für solche TestObjects-Objekte so schnell wie möglich wieder zurück.