getTestData メソッドを使用したテーブル・セルの反復

このトピックでは、Functional Tester の getTestData メソッドを使用してグリッド・コントロールのセル内の値にアクセスする方法の例を示します。

この例では、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();
}
}

この例は、アプリケーションの「View Existing Orders」画面にナビゲートします。この例に示すコードは、グリッドのすべてのセルから値を抽出して、それらをコンソール・ウィンドウに表示します。

データを抽出するための最初のステップは、getTestData メソッドを使用してコントロールからデータを抽出することです。これは以下の構文を使用して行います。

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

このデータ・セットがあれば、getRowCount および getColumnCount メソッドを使用して、行および列の合計数を判別できます。さらに、getTestDataTypes を使用して、テーブルから使用可能なデータ型をコントロールに照会できます。以下のコードは、これらの照会の結果をコンソール・ウィンドウに送ります。

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

次のステップは、個別のセルの値を印刷することです。これは以下のように、for ループを使用してグリッドの行および列を反復処理することにより行います。

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

例示したスクリプトは getCell メソッドを使用して、現行のセルの値を印刷します。 getColumnHeader メソッドが現行の列ヘッダーを印刷することにも注意してください。 グリッドに対する作業を行うとき、行と列の両方の番号付けは 0 から始まります。 ただし、番号付けが 1 から始まる getRowCount および getColumnCount メソッドは例外です。


フィードバック