Por ejemplo, si desea llamar directamente a varios métodos en el mismo objeto, supondría una pérdida de tiempo para Functional Tester tener que buscar el objeto cada vez que se llamara a un método. Puede utilizar el método TestObject.find para buscar un objeto sin que Functional Tester tenga que llamar a los métodos en el objeto. TestObject.find devuelve TestObject, que contiene un tipo diferente de referencia al objeto en la aplicación sometida a la prueba. Esta referencia a veces se denomina una referencia vinculada, una referencia encontrada o una referencia no correlacionada.
Una referencia vinculada conserva el acceso al objeto en la aplicación sometida a la prueba hasta que explícitamente se anule el registro de la referencia. Functional Tester sólo anula el registro de las referencias vinculadas cuando finaliza toda la reproducción y no cuando finaliza el script. Mientras exista una referencia vinculada al objeto, Functional Tester puede impedir que el objeto de la aplicación quede totalmente liberado. Por ejemplo, mientras se retiene una referencia vinculada a un objeto Java, el objeto Java no se recopila como basura. Debe anular explícitamente el registro de todas las referencias vinculadas que haya creado en cuanto deje de necesitarlas.
En un script normal de Functional Tester, el único TestObjects que contiene referencias correlacionadas son los métodos de los scripts de ayuda. El resto de los TestObjects contienen referencias vinculadas y sus registros se deben anular. Por ejemplo, el método TestObject.getTopParent se declara explícitamente para devolver un TestObject. Otros métodos se declaran para devolver un java.lang.Object, pero pueden devolver un TestObject cuyo registro se deba anular, por ejemplo, TestObject.getProperty.
RationalTestScript contiene varios métodos que eliminan las referencias a TestObjects, incluido com.rational.test.ft.script.RationalTestScript.unregister y unregisterAll. Consulte el apartado Referencia de API de personas encargadas de las pruebas funcionales para obtener más información sobre estos métodos.
Los objetos devueltos por la aplicación sometida a la prueba que no son TestObjects son objetos que representan un valor. Estos tipos de objetos se denominan clase de valor. Una clase de valor es una copia del objeto en la aplicación sometida a la prueba y no una referencia a un objeto de la aplicación sometida a la prueba. Entre los ejemplos más habituales de clases de valor destacan java.lang.Integer y java.awt.Rectangle.
Los asistentes y los registradores de Functional Tester sólo generan código que devuelve clases de valor. Por ejemplo, una propiedad visible en el caso de prueba Propiedades del objeto es una propiedad cuyo valor es una clase de valor. Puede llamar a TestObject.getNonValueProperties para encontrar las propiedades de referencia disponibles para un objeto en particular. Puede llamar a TestObject.getMethods para ver una lista de todos los métodos que pueden invocarse llamando a TestObject.invoke.
Proceda con sumo cuidado cuando gestione directamente con un
TestObjects que contiene referencias a objetos en la aplicación sometida a la
prueba ya que podría crear cierta inestabilidad en la aplicación. Anule
el registro de estos TestObjects lo
antes posible.