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) :

import resources.GetGridDataExampleHelper;
import com.rational.test.ft.*;

import com.rational.test.ft.object.interfaces.*;

import com.rational.test.ft.script.*;

import com.rational.test.ft.value.*;

import com.rational.test.ft.vp.*;

/**
 * Description : Functional Test Script
 * @author administrator
 */

public class GetGridDataExample extends GetGridDataExampleHelper
{
/**
* Script Name : <b>GetTreeDataExample</b>
* Generated : <b>Dec 14, 2002 6:24:48 AM</b>
* Modified : <b>Dec 14, 2002 6:24:48 AM</b>
* Description : Functional Test Script
* Original Host : WinNT Version 5.0 Build 2195 (Service Pack 3)
*
* @since 2002/12/14
* @author administrator
*/

public void testMain (Object[] args)
{

// 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
ITestDataTable orderTable;
orderTable
(ITestDataTable)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.out.println ("Types de données disponibles : " +
existingTableTable().getTestDataTypes())
System.out.println ("Nombre total de lignes dans la table : " +
orderTable.getRowCount());
System.out.println ("Nombre total de colonnes dans la table : " +
orderTable.getColumnCount());

// Parcourir toutes les lignes
for (int row=0; row < orderTable.getRowCount();++row)
{
// Parcourir toutes les colonnes
for (int col=0; col < orderTable.getColumnCount();++col)
{
// Afficher les valeurs des cellules aux coordonnées (row,col)
System.out.println ("Ligne " + row + ", " +
orderTable.getColumnHeader(col) + ": "
+orderTable.getCell(row,col) );
}
}
// Fermer la fenêtre
closeorderButton().click();

// Fermer l'application Java ClassicsCD
ClassicsJavaFrame(ANY,MAY_EXIT).close();

}
}

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 :

ITestDataTable orderTable;
orderTable = (ITestDataTable)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.out.println ("Types de données disponibles : " +
existingTableTable().getTestDataTypes());
System.out.println ("Nombre total de lignes dans la table : " +
orderTable.getRowCount());
System.out.println ("Nombre total de colonnes dans la table : " +
orderTable.getColumnCount());&#9;&#9;

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 :

for (int row=0; row < orderTable.getRowCount();++row)
{
// Parcourir toutes les colonnes
for (int col=0; col < orderTable.getColumnCount();++col)
{
// Afficher les valeurs des cellules aux coordonnées (row,col)
System.out.println ("Ligne " + row + ", " +
orderTable.getColumnHeader(col) + ": " +
orderTable.getCell(row,col) );
}
}

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.