In diesem Beispiel erfahren Sie, wie Sie mit der Functional Test-Methode GetTestData
über das Programm auf die Werte in den Verzweigungen der Baumstruktur zugreifen können. Im folgenden Beispiel wird erneut die Anwendung "Classics Java" getestet:
Imports Rational.Test.Ft Imports Rational.Test.Ft.Object.Interfaces Imports Rational.Test.Ft.Script Imports Rational.Test.Ft.Value Imports Rational.Test.Ft.Vp Public Class GetTreeDataExample Inherits GetTreeDataExampleHelper ' Script Name : GetTreeDataExample ' Generated : Dec 14, 2005 6:24:48 AM ' Modified : Dec 14, 2005 6:24:48 AM ' Description : Functional Test Script ' since 2005/12/14 ' 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 Tree2Tree().WaitForExistence() ' Display available test data types available from tree System.Console.WriteLine("Available Tree Data Types: " + _ Tree2Tree().GetTestDataTypes()) ' Declare variables for tree Dim CdTree As ITestDataTree Dim CdTreeNodes As ITestDataTreeNodes Dim CdTreeNode As ITestDataTreeNode ' Variables to hold tree data CdTree = Tree2Tree().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 ClassicsJavaFrame(ANY,MAY_EXIT).Close() End Function Public Sub ShowTree(ByVal Node As ITestDataTreeNodeNode, 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 zu den Komponisten verfügbaren CDs aufgelistet. Mit dem Code in diesem Beispiel werden die entsprechenden Werte aus den Verzweigungen der Baumstruktur ausgelesen und im Konsolfenster angezeigt.
Erster Schritt zum Extrahieren der Daten ist die Verwendung der Methode GetTestData
. Damit werden die Daten aus der Steuerung extrahiert. Folgende Syntax wird dazu verwendet:
Dim CdTree As ITestDataTree CdTree = Tree2Tree().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()
Berücksichtigen 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.
Über die Knoten in der Baumstruktur können Sie mit Hilfe einer Rekursion für jeden einzelnen Knoten dessen 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
. Im vorliegenden Beispiel wird dazu der folgende Code verwendet:
System.Console.WriteLine(Tabs.Substring(0, TabCount) + _ Node.GetNode()+" (" + Node.GetChildCount() + " Children)")
Hinweis: Der zusätzliche Code in der angepassten ShowTree
-Methode ermöglicht das formatierte Drucken mit Hilfe von Tabulatorzeichen zur Anzeige der Einrückungen in der Baumstruktur.
Nutzungsbedingungen | Feedback
(C) Copyright IBM Corporation 2002, 2004. Alle Rechte vorbehalten.