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

Cette rubrique contient un exemple d'utilisation de la méthode getTestData de Functional Tester utilisée pour accéder aux valeurs des 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.object.interfaces.SAP.*;
import com.rational.test.ft.object.interfaces.siebel.*;
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   : GetGridDataExample
* Generated     : Jul 14, 2006 3:05:22 PM
* Description : Functional Test Script
* Original Host : WinNT Version 5.1  Build 2600 (S)
* 
* @since  2006/07/14
* @author Administrator
*/
public void testMain (Object[] args) 
{
//Démarrer l'application Java Classics
startApp("ClassicsJavaA");

//Naviguer jusqu'à la grille des commandes existantes (Existing Orders)
jmb().click(atPath("Order"));
jmb().click(atPath("Order->View Existing Order Status..."));

// Fenêtre : View Order Status
nameComboB().click();
nameComboB().click(atText("Claire Stratus"));
ok().click();

// Fenêtre : View Existing Orders
existingTable().click(atPoint(172,92));

//Obtenir les données de la table
ITestDataTable orderTable =  (ITestDataTable)existingTable().getTestData("contents");

// Afficher les types de données disponibles pour la grille, ainsi que le //nombre total de colonnes.
System.out.println ("Available Data Types: " + existingTable().getTestDataTypes());
System.out.println ("Total Rows in table : " + orderTable.getRowCount());
System.out.println ("Total Cols in 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 ("Row " + row + ", " +  orderTable.getColumnHeader(col) + ": " +orderTable.getCell(row,col) );
					}
			}
// Fermer la fenêtre
close().click();

// Fenêtre : ClassicsCD
classicsJava(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)existingTable().
  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 : " +
     existingTable().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());

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 " + ligne + ", " +
        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. Cette règle ne s'applique pas aux méthodes getRowCount et getColumnCount, qui utilisent une numérotation commençant à 1.


Retour d'informations