Im folgenden Beispiel werden Tests an der Java-Anwendung Classics durchgeführt:
#Region " Script Header " ' Functional Test Script ' author Administrator Imports Microsoft.VisualBasic Imports Rational.Test.Ft Imports Rational.Test.Ft.Object.Interfaces Imports Rational.Test.Ft.Object.Interfaces.SAP Imports Rational.Test.Ft.Object.Interfaces.Siebel Imports Rational.Test.Ft.Script Imports Rational.Test.Ft.Value Imports Rational.Test.Ft.Vp #End Region Public Class GetTreeDataExample Inherits GetTreeDataExampleHelper ' Script Name : GetTreeDataExample 'Generated : Jul 17, 2006 3:25:22 PM 'Description : Functional Test Script 'Original Host : Windows XP x86 5.1 build 2600 Service Pack 2 'since 2006/07/17 'author Administrator Public Function TestMain(ByVal args() As Object) ' Turn off Log Viewer for this example SetOption(IOptionName.BRING_UP_LOGVIEWER, False) 'Start Classics Java Application StartApp("ClassicsJavaA") ' Wait for tree to appear Tree2().WaitForExistence() ' Display available test data types available from tree System.Console.WriteLine(String.Format("Available Tree Data Types: {0}", Tree2().GetTestDataTypes())) ' Declare variables for tree Dim CdTree As ITestDataTree Dim CdTreeNodes As ITestDataTreeNodes Dim CdTreeNode() As ITestDataTreeNode ' Variables to hold tree data CdTree = Tree2().GetTestData("tree") CdTreeNodes = CdTree.GetTreeNodes() CdTreeNode = CdTreeNodes.GetRootNodes() ' Print out total number of nodes System.Console.WriteLine("Tree Total Node Count: " + CdTreeNodes.GetNodeCount()) System.Console.WriteLine("Tree Root Node Count : " + CdTreeNodes.GetRootNodeCount()) ' Iterate through tree branches; this is a recursive method. Dim I As Integer For I = 0 To CdTreeNode.Length - 1 ShowTree(CdTreeNode(I), 0) Next I ' Shut down Classics Java Application ClassicsJava(ANY, MAY_EXIT).Close() End Function Public Sub ShowTree(ByVal Node As ITestDataTreeNode, ByVal _ Indent As Integer) ' Recursive method to print out tree nodes with proper ' indenting. ' Determine number of tabs to use - to properly indent tree Dim TabCount As Integer IIf(Indent < Tabs.Length(), TabCount = Indent, TabCount = Tabs.Length()) ' Print out node name + number of children System.Console.WriteLine(Tabs.Substring(0, TabCount) + Node.GetNode() + " (" + Node.GetChildCount() + " Children)") ' Determine if node has children; recursively call this same ' method to print out child nodes. Dim Children() As ITestDataTreeNode = Node.GetChildren() Dim ChildCount As Integer IIf(ChildCount <> 0, ChildCount = Children.Length, ChildCount = 0) Dim I As Integer For I = 0 To ChildCount - 1 ShowTree(Children(I), Indent+1) Next I End Sub ' String of tabs used to indent tree view Const Tabs As String = _ "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" End Class
In der ersten Anzeige dieser Anwendung finden Sie eine Java Swing JTree-Komponente mit fünf Komponisten. Auf der nächsten Ebene darunter werden die verfügbaren CDs des ausgewählten Komponisten aufgelistet. Mit dem Code in diesem Beispiel werden die Werte aus allen Verzweigungen der Baumstruktur extrahiert und im Konsolfenster angezeigt.
Im ersten Schritt verwenden Sie die Methode GetTestData, um die Daten aus der Steuerung zu extrahieren. Dazu wird folgende Syntax verwendet:
Dim CdTree As ITestDataTree CdTree = Tree2().GetTestData("tree")
Im nächsten Schritt wird eine Feldgruppe mit allen Knoten in der Baumstruktur erstellt. Gehen Sie dazu wie folgt vor:
Dim CdTreeNodes As ITestDataTreeNodes Dim CdTreeNode As ITestDataTreeNode() CdTreeNodes = CdTree.GetTreeNodes() CdTreeNode = CdTreeNodes.GetRootNodes()
Beachten Sie, dass dieser Prozess aus zwei Schritten besteht. Zunächst müssen Sie die Methode GetTreeNodes anwenden, um ein TreeNodes-Objekt zu erstellen. Anschließend rufen Sie die Methode GetRootNodes auf, um eine Feldgruppe mit den Stammknoten für die Baumstruktur zu extrahieren.
Anhand der Knoten in der Baumstruktur können Sie mit einer Rekursion jeden einzelnen Knoten durchlaufen und seinen Wert sowie die Anzahl direkt untergeordneter Elemente bestimmen. Dazu müssen Sie die Rekursionsmethode ShowTree anwenden. Bei einer Rekursionsmethode handelt es sich um eine Methode, die sich selbst aufruft. Mit dieser Methode können Sie sich problemlos durch eine Baumstruktur bewegen. Um den Wert des Knotens zu extrahieren, müssen Sie die Methode GetNode anwenden. Extrahieren Sie die im Knoten enthaltenen untergeordneten Elemente mit der Methode GetChildCount. In diesem Beispiel wird dazu folgender Code verwendet:
System.Console.WriteLine(Tabs.Substring(0, TabCount) + Node.GetNode() + " (" + Node.GetChildCount() + " Children)")
Beachten Sie die zusätzliche Codierung in der angepassten Methode ShowTree, die einen formatierten Ausdruck ermöglicht, bei dem Tabulatoren zur Darstellung der Einrückungen in der Baumstruktur verwendet werden.