Registrierung von Referenzen auf Testobjekte zurücknehmen

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.