Les méthodes de script auxiliaire (Helper) utilisent la mappe d'objets de test pour
désigner un objet dans l'application testée. Chaque fois qu'une méthode est appelée
sur un objet, Functional Tester recherche cet objet dans la mappe. Cependant, il peut arriver
que cette recherche systématique ne soit pas souhaitable. Par exemple, si vous souhaitez
appeler de nombreuses méthodes directement sur le même objet, rechercher à chaque fois l'objet avec la méthode find
est une perte de temps. Vous pouvez utiliser la méthode TestObject.find
pour trouver un objet
sans que Functional Tester appelle pour autant des méthodes sur cet objet. TestObject.find
renvoie un nouveau TestObject
contenant une sorte de référence différente à l'objet
dans l'application testée. Cette référence est parfois appelée référence liée (bound) ou
non mappée.
Une référence liée conserve l'accès à l'objet dans l'application testée jusqu'à ce qu'elle soit explicitement désenregistrée. Functional Tester désenregistre les références liées seulement une fois que la lecture entière a pris fin, et non lorsque le script se termine. Tant qu'une référence liée à un objet subsiste, Functional Tester peut empêcher la libération complète de cet objet dans l'application. Ainsi, un objet Java n'est pas "ramassé" par le récupérateur de place (garbage collector) tant qu'il existe une référence liée à cet objet. Par conséquent, vous devez explicitement désenregistrer les références liées que vous créez dès que vous n'en avez plus l'utilité.
Dans un script Functional Tester normal, les seuls TestObjects
qui contiennent
des références mappées sont les méthodes des scripts auxiliaires.
Tous les autres TestObjects
contiennent des références liées et doivent, par conséquent,
être désenregistrés. Par exemple, la méthode TestObject.getTopParent
est explicitement déclarée pour renvoyer un TestObject
. D'autres méthodes sont déclarées
pour renvoyer un java.lang.Object
, mais elles peuvent renvoyer
un TestObject
qui doit ensuite être désenregistré. C'est le cas, par exemple,
de TestObject.getProperty
.
La classe RationalTestScript contient plusieurs méthodes qui servent à supprimer les références aux
TestObjects
, parmi lesquelles com.rational.test.ft.script.RationalTestScript.unregister
et unregisterAll
. (Pour plus d'informations sur ces méthodes, voir
le Guide de référence des API de Functional Tester.)
Les objets renvoyés par l'application testée qui ne sont pas des
TestObjects
représentent des valeurs. Le type d'un tel
objet est appelé classe de valeur. Une classe de valeur est une copie d'un objet
dans l'application testée, et non une référence à cet objet.
Les classes java.lang.Integer
et java.awt.Rectangle
en sont des exemples courants.
L'enregistreur et les assistants de Functional Tester génèrent seulement du code qui renvoie
des classes de valeur. Par exemple, une propriété que vous voyez dans le
jeu d'essai (test case) Object Properties est une propriété dont la valeur est
une classe de valeur. Vous pouvez appeler TestObject.getNonValueProperties
pour trouver les propriétés de référence disponibles pour un objet
particulier. De même, vous pouvez appeler TestObject.getMethods
pour obtenir la liste
de toutes les méthodes qu'il est possible d'invoquer en appelant TestObject.invoke
.
Soyez prudent lorsque vous manipulez directement des TestObjects
contenant des références aux objets dans l'application testée, car celle-ci peut devenir
instable. Désenregistrez ces TestObjects
dès que possible.
Conditions d'utilisation | Appréciations en retour
(C) Copyright IBM Corporation 2002, 2004. All Rights Reserved.