Repetición por celdas de tabla utilizando el método getTestData

Este tema proporciona un ejemplo de utilización del método getTestData de Functional Tester para acceder a los valores de las celdas de un control cuadrícula.

Este ejemplo es una prueba contra la aplicación Classics Java™:

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) 
{
//Start Classics Java Application
startApp("ClassicsJavaA");

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

// Frame: View Order Status
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());

		  // Cycle through all rows
		  for (int row=0; row < orderTable.getRowCount();++row)
		  {
		      // Cycle through all columns
		      for (int col=0; col < orderTable.getColumnCount();++col)
		      {
		          // Print out values of cells at (row,col) coordinates
		          System.out.println ("Row " + row + ", " + orderTable.getColumnHeader(col) + ": " +orderTable.getCell(row,col) );
					}
			}
// Close the frame
close().click();

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

Este ejemplo navega hacia la pantalla "Ver pedidos existentes" de la aplicación. El código de este ejemplo extrae los valores de todas las celdas de la cuadrícula y los visualiza en la ventana de la consola.

El primer paso para extraer los datos consiste en utilizar el método getTestData para extraer los datos desde el control. Esto se efectúa con la sintaxis siguiente:

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

En este conjunto de datos concreto, puede determinar el número total de filas y columnas utilizando los métodos getRowCount y getColumnCount. También puede preguntar al control qué tipos de datos están disponibles en la tabla utilizando getTestDataTypes. El código siguiente envía los resultados de estas consultas a la ventana de la consola.

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());

El paso siguiente consiste en imprimir los valores de las celdas individuales, lo que se efectúa utilizando un bucle for para recorrer las filas y las columnas de la cuadrícula:

for (int row=0; row < orderTable.getRowCount();++row)
{
    // Cycle through all columns
    for (int col=0; col < orderTable.getColumnCount();++col)
    {
        // Print out values of cells at (row,col) coords
        System.out.println ("Row " + row + ", " +
        orderTable.getColumnHeader(col) + ": " +
        orderTable.getCell(row,col) );
    }
}

El script de ejemplo utiliza el método getCell para imprimir el valor de la celda actual. Tenga también en cuenta, que el método getColumnHeader imprime la cabecera de la columna actual. Cuando trabaje con una cuadrícula, la numeración de las filas y de las columnas empieza por 0. No obstante, esto no es aplicable a los métodos getRowCount y getColumnCount, en los que la numeración empieza por 1.


Comentarios