例如,您可能想要在相同物件上直接呼叫許多方法,但在每次呼叫方法時,Functional Tester 會浪費許多時間來尋找物件。您可以利用 TestObject.find 方法來尋找物件,不必讓 Functional Tester 在物件上呼叫任何方法。TestObject.find 傳回新的 TestObject,內含各種參照來指向測試中應用程式裡的物件。這個參照有時稱為連結參照、尋獲參照或非對映參照。
在明確取消登錄參照之前,連結參照可持續存取測試中應用程式裡的物件。Functional Tester 只會在整個重播結束時才會取消登錄連結參照,不會在 Script 結束時就取消登錄。只要物件的連結參照存在,Functional Tester 就可能防止應用程式中的物件完全釋放。例如,當您持有 Java™ 物件的連結參照時,就不會回收 Java 物件。只要不再使用,您必須明確取消登錄您建立的任何連結參照。
在一般的 Functional Tester Script 中,TestObjects(含有對映的參照)都是來自 Helper Script 的方法。其他所有 TestObjects 包含連結參照,必須取消登錄。例如,TestObject.getTopParent 方法明確宣告為傳回 TestObject。其他方法宣告為傳回 java.lang.Object,但可能傳回必須取消登錄的 TestObject -- 例如 TestObject.getProperty。
RationalTestScript 包含幾個方法可移除 TestObjects 的參照, 包括 com.rational.test.ft.script.RationalTestScript.unregister 和 unregisterAll。如需這些方法的相關資訊,請參閱 Functional Tester API 參考手冊。
從測試中應用程式傳回的物件,如果不是 TestObjects,則為代表某個值的物件。這種物件的類型稱為值類別。值類別是測試中應用程式裡的物件複本,不是測試中應用程式裡某個物件的參照。常見的值類別有 java.lang.Integer 和 java.awt.Rectangle。
Functional Tester 記錄器和精靈只會產生傳回值類別的程式碼。例如,以在「物件內容」測試案例中看到的內容而言,內容的值就是一個值類別。您可以呼叫 TestObject.getNonValueProperties,尋找特定物件可用的參照內容。您可以呼叫 TestObject.getMethods,查看可透過 TestObject.invoke 來呼叫的所有方法。
在直接處理 TestObjects 時(參照測試中應用程式裡的物件),請小心,因為這樣做可能造成應用程式不穩定。請儘快取消登錄這些 TestObjects。