Itération sur des cellules de table à l'aide de la méthode GetTestData

Cet exemple montre comment utiliser la méthode GetTestData de l'API Functional Tester pour accéder aux valeurs contenues dans les cellules d'un contrôle de type grille (Grid). L'application testée est l'exemple d'application Java fourni avec le produit, ClassicsCD (ClassicsJavaA) :

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 GetGridDataExample Inherits GetGridDataExampleHelper
 
    ' Script Name   : GetTreeDataExample
    ' Generated     : Dec 14, 2005 6:24:48 AM
    ' Description   : Functional Test Script

    ' since 2005/12/14
    ' author Administrator
 
    Public Function TestMain ByVal args() As Object)
        ' Désactiver l'ouverture du visionneur de journal pour cet exemple
        SetOption(IOptionName.BRING_UP_LOGVIEWER, False)
 
        ' Démarrer l'application Java ClassicsCD
        StartApp("ClassicsJavaA")
 
        ' Naviguer jusqu'à la grille des commandes existantes (Existing Orders)
        JmbMenuBar().WaitForExistence()
        JmbMenuBar().Click(AtPath("Order"))
        JmbMenuBar().Click(AtPath _
          ("Order->View Existing Order Status..."))
 
        ' Fenêtre : View Order Status
        NameComboBComboBox().Click()
        NameComboBComboBox().Click(AtText("Claire Stratus"))
        Okstatuslogon2Button().Click()
 
        ' Attendre que la table soit créée
        ExistingTableTable().WaitForExistence()
 
        ' Obtenir les données de la table
        Dim OrderTable As ITestDataTable
        OrderTable = ExistingTableTable(). _
         GetTestData("contents")
 
        ' Afficher les types de données disponibles pour la grille, ainsi que le nombre total
        ' de lignes et le nombre total de colonnes.
        System.Console.WriteLine("Types de données disponibles : " + _
          ExistingTableTable().GetTestDataTypes())
        System.Console.WriteLine("Nombre total de lignes dans la table : " + _
          OrderTable.GetRowCount())
        System.Console.WriteLine("Nombre total de colonnes dans la table : " + _
          OrderTable.GetColumnCount())
 
        ' Parcourir toutes les lignes
        Dim Row As Integer
        For Row = 0 To OrderTable.GetRowCount() - 1
          ' Parcourir toutes les colonnes
          Dim Col As Integer
          For Col = 0 To OrderTable.GetColumnCount() - 1
           ' Afficher les valeurs des cellules aux coordonnées (Row, Col)
           System.Console.WriteLine("Ligne " + Row + ", " + _
             OrderTable.GetColumnHeader(col) + ": " _
               + OrderTable.GetCell(Row, Col))
          Next Col
        Next Row
 
       ' Fermer la fenêtre
       CloseorderButton().Click()
 
       ' Fermer l'application Java ClassicsCD
       ClassicsJavaFrame(ANY,MAY_EXIT).Close()
       End Function
  End Class

Dans cet exemple, le script navigue jusqu'à l'écran "View Existing Orders" de l'application. Il lit ensuite les valeurs de toutes les cellules de la grille et les affiche dans la console.

La première étape consiste à utiliser la méthode GetTestData pour extraire les données du contrôle. La syntaxe suivante est utilisée à cet effet :

Dim OrderTable As ITestDataTable
OrderTable = ExistingTableTable().GetTestData("contents")

Disposant de ce jeu de données, on peut déterminer le nombre total de lignes et le nombre total de colonnes en utilisant respectivement les méthodes GetRowCount et GetColumnCount. On peut aussi utiliser la méthode GetTestDataTypes pour demander au contrôle quels types de données sont disponibles dans la table. Le code suivant envoie les résultats de ces requêtes à la console.

System.Console.WriteLine("Types de données disponibles : " + _
        ExistingTableTable().GetTestDataTypes())
System.Console.WriteLine("Nombre total de lignes dans la table : " + _
        OrderTable.GetRowCount())
System.Console.WriteLine("Nombre total de colonnes dans la table : " + _
        OrderTable.GetColumnCount())

L'étape suivante consiste à afficher la valeur de chaque cellule individuelle, opération réalisée avec l'aide d'une boucle for qui parcourt une à une les lignes et les colonnes de la grille :

' Parcourir toutes les lignes
Dim Row As Integer
For Row = 0 To OrderTable.GetRowCount() - 1
  ' Parcourir toutes les colonnes
  Dim Col As Integer
  For Col = 0 To OrderTable.GetColumnCount() - 1
    ' Afficher les valeurs des cellules aux coordonnées (Row, Col)
    System.Console.WriteLine("Ligne " + Row + ", " + _
      OrderTable.GetColumnHeader(Col) + ": " _
        + OrderTable.GetCell(Row,Col) )
    Next Col
 Next Row

La méthode GetCell est utilisée pour afficher la valeur de la cellule courante. Notez également que la méthode GetColumnHeader est utilisée pour afficher l'en-tête de la colonne courante. Dans une grille, la numérotation des lignes et des colonnes commence à 0. Cela ne s'applique pas aux méthodes GetRowCount et GetColumnCount, qui utilisent une numérotation commençant à 1.

Conditions d'utilisation | Appréciations en retour
(C) Copyright IBM Corporation 2002, 2004. All Rights Reserved.