Iterazione sulle celle della tabella utilizzando il metodo getTestData

Questa sezione fornisce un esempio di utilizzo del metodo getTestData di Functional Tester per accedere ai valori nelle celle di un controllo griglia.

L'esempio esegue il test dell'applicazione Java™ Classics:

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) 
{
// Avviare l'applicazione Java Classics
startApp("ClassicsJavaA");

//Navigate to Existing Order Grid
jmb().click(atPath("Order"));
jmb().click(atPath("Order->View Existing Order Status..."));

// Frame: Visualizzare stato ordine
nameComboB().click();
nameComboB().click(atText("Claire Stratus"));
ok().click();

// Frame: View Existing Orders
existingTable().click(atPoint(172,92));

//Get the data for the table
ITestDataTable orderTable = (ITestDataTable)existingTable().getTestData("contents");

//Display the available data types for the grid, total rows and columns.
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());

		  // Scorrere tutte le righe
		  for (int row=0; row < orderTable.getRowCount();++row)
		  {
		      // Scorrere tutte le colonne
		      for (int col=0; col < orderTable.getColumnCount();++col)
		      {
		          // Stampare i valori delle celle alle coordinate (riga,col)
		          System.out.println ("Row " + row + ", " + orderTable.getColumnHeader(col) + ": " +orderTable.getCell(row,col) );
					}
			}
// Chiudere il frame
close().click();

// Frame: ClassicsCD
classicsJava(ANY,MAY_EXIT).close();
}
}

Questo esempio passa allo schermo "Visualizza ordini esistenti" dell'applicazione. Il codice in questo esempio estrae i valori da tutte le celle nella griglia e li visualizza nella finestra della console.

Il primo passo nell'estrazione dei dati consiste nell'utilizzare il metodo getTestData per estrarre i dati dal controllo. Ciò viene effettuato utilizzando la sintassi seguente:

ITestDataTable orderTable;
orderTable = (ITestDataTable)existingTable().
  getTestData("contents");

Posto questo set di dati, è possibile determinare il numero totale di righe e colonne utilizzando i metodi getRowCount e getColumnCount. È anche possibile richiedere al controllo quali tipi di dati sono disponibili dalla tabella utilizzando getTestDataTypes. Il seguente codice invia i risultati di queste query alla finestra della console.

System.out.println ("Tipi di dati disponibili: " +
     existingTable().getTestDataTypes());
System.out.println ("Righe totali nella tabella : " +
     orderTable.getRowCount());
System.out.println ("Colonne totali nella tabella : " +
     orderTable.getColumnCount());

Il passo successivo consiste nello stampare i valori delle singole celle, operazione eseguita utilizzando un loop for per scorrere le righe e le colonne della griglia:

for (int row=0; row < orderTable.getRowCount();++row)
{
    // Scorrere tutte le colonne
    for (int col=0; col < orderTable.getColumnCount();++col)
    {
        // Stampare i valori delle celle alle coordinate (riga,col)
        System.out.println ("Riga " + row + ", " +
        orderTable.getColumnHeader(col) + ": " +
        orderTable.getCell(row,col) );
    }
}

Lo script di esempio utilizza il metodo getCell per stampare il valore della cella corrente. Notare anche che il metodo getColumnHeader stampa l'intestazione di colonna corrente. Quando si gestisce una griglia, la numerazione sia per le righe che per le colonne inizia da 0. Questo non è valido per i metodi getRowCount e getColumnCount, dove la numerazione inizia da 1.


Feedback