Tipos de TestData

La estructura de Functional Tester llama a los métodos de proxy de getTestDataTypes() y getTestData(String) para extraer datos de controles para verificación y referencia. Estos métodos se utilizan durante la creación y reproducción de los puntos de verificación de datos. Puede sustituir el método getTestDataTypes() para añadir más tipos de datos específicos para un control.

Por ejemplo, un control TextBox puede tener text y selected-text como tipos de datos admitidos. Cada uno de estos tipos está asociado con un nombre y descripción de una serie que el proxy define. Este nombre se pasa a la API getTestData(String) para obtener los datos de control. Mientras se implementa la API getTestData(String), deberá utilizar los tipos de datos predefinidos adecuados y llenarlos con los datos de control y devolverlos en consecuencia.

Diagrama de clase

El siguiente diagrama de clase muestra los tipos de datos de prueba predefinidos que Functional Tester ofrece:

Tipos TestData

Los siguientes tipos de datos predefinidos son algunos de los tipos de datos que se pueden utilizar mientras se implementa la API de proxy getTestData()

TestDataText

El tipo TestDataText representa un valor de serie.

Este código de ejemplo muestra cómo se implementa el tipo de datos TestDataText en Java™:

import com.rational.test.ft.vp.ITestData;
import com.rational.test.ft.vp.impl.TestDataText;

ITestData testData =  null;
testData = new TestDataText( getSelectedText());
return testData ;

Este código de ejemplo muestra cómo se implementa el tipo de datos TestDataText en .Net:

Rational.Test.Ft.Vp.ITestData testData = null ;
object item = ((ComboBox)theTestObject).SelectedItem ;
testData = new Rational.Test.Ft.Vp.Impl.TestDataText(((ComboBox)theTestObject).GetItemText(item));
return testData;

TestDataList

El tipo TestDataList representa una lista de elementos como, por ejemplo, elementos en un ListBox y una sola columna de una tabla.

Este código de ejemplo muestra cómo se implementa el tipo de datos TestDataList en Java:

import com.rational.test.ft.vp.ITestData;
import com.rational.test.ft.vp.impl.TestDataElementList;
import com.rational.test.ft.vp.impl.TestDataList;

Object[] items = getListItemObjects();
TestDataElementList testData = new TestDataElementList();
for ( int i = 0; i < items.length; i ++  )
{
	if ( items[i] != null )
	{
		testData.add(new TestDataElement(items[i], false));
		nonNullValueExist = true;
	}
	else
		testData.add(null);
}
return (new TestDataList(testData));

This example code shows how to implement the TestDataList data type in .Net:

Rational.Test.Ft.Vp.ITestData testData = null ;
string[] itemList = new string[((ComboBox)theTestObject).Items.Count] ;
for(int i=0; i < ((ComboBox)theTestObject).Items.Count; i++)
{
	object item = ((ComboBox)theTestObject).Items[i] ;

	if (item is string)
		itemList[i] = (string) item ;
	else
		itemList[i] = ((ComboBox)theTestObject).GetItemText(item) ;

}
testData = new Rational.Test.Ft.Vp.Impl.TestDataList(new Rational.Test.Ft.Vp.Impl.TestDataElementList(itemList)) ;
return testData;

TestDataTable

El tipo TestDataTable representa dos de dos dimensiones incluidos en controles como, por ejemplo, tablas y cuadrículas.

Este código de ejemplo muestra cómo implementar el tipo de datos TestDataTable en Java:

import com.rational.test.ft.vp.ITestData;
import com.rational.test.ft.vp.ITestDataTable;
import com.rational.test.ft.vp.impl.TestDataTable;
import com.rational.test.ft.vp.impl.TestDataTableRegion;
.
.
int rowCount = getRowCount();				
int colCount = getColumnCount();

object[] rowElements;
rowElements = new object[colCount];

for (int row = 0; row < rowCount; ++row)
{
	for (int col = 0; col < colCount; ++col)
	{
		object item = this.getItemText(row, col);
		if (item != null)
			rowElements[col] = item.ToString();
	}
	testData.add(rowElements);
}


for (int col = 0; col < colCount; ++col)
{
	object item = this.getColumnName(col);
	if (item != null)
		data.setColumnHeader(col, header);
}


testData.addComparisonRegion(TestDataTableRegion.allCells());
testData.setCompareBothByLeftRegions(true);

return testData;

Este código de ejemplo muestra cómo se implementa el tipo de datos TestDataTable en .Net:

Rational.Test.Ft.Vp.ITestData testData = null;
System.Data.DataTable dataTable = GetControlData();

int colCount = dataTable.Columns.Count;
int rowCount = dataTable.Rows.Count;

object[] rowElements;
rowElements = new object[colCount];

for (int row = 0; row < rowCount; ++row)
{
	for (int col = 0; col < colCount; ++col)
	{
		object item = null;
		item = dataTable.Rows[row][col];
		if (item != null)
			item = item.ToString();
		rowElements[col] = item;
	}
	testData.Add(rowElements);
}


for (int col = 0; col < colCount; ++col)
{
	string columnName = dataTable.Columns[col].ColumnName;
	if (columnName != null && !columnName.Equals(string.Empty))
		testData.SetColumnHeader(col, columnName);
}

testData.AddComparisonRegion(TestDataTableRegion.AllCells());
testData.SetCompareBothByLeftRegions(true);

return testData;

TestDataTree

El tipo TestDataTree representa una estructura de datos en árbol.

Este código de ejemplo muestra cómo se implementa el tipo de datos TestDataTree en .Net:

public override Rational.Test.Ft.Vp.ITestData GetTestData(string testDataType)
{
.
.
	Rational.Test.Ft.Vp.ITestData testData = new TestDataTree(GetRootNodes());
	return testData;
.
.
}


private ITestDataTreeNodes GetRootNodes()
{
	System.Collections.ArrayList nodeCache = new System.Collections.ArrayList(80);
	System.Windows.Forms.TreeNodeCollection rootNodes = ((TreeView)this.theTestObject).Nodes;

	if ( rootNodes != null && rootNodes.Count > 0 )
	{
		for ( int i = 0; i < children.Length; ++i )
		{
			nodeCache.Add(GetNode(children[i], null));
		}
	}

	ITestDataTreeNode[] nodes = new TestDataTreeNode[nodeCache.Count];
	System.Array array = nodeCache.ToArray();
	for ( int i = 0; i < array.Length; ++i )
	{
		nodes[i] = (ITestDataTreeNode)array.GetValue(i);
	}
	TestDataTreeNodes testNodes = new TestDataTreeNodes(nodes);

	return testNodes;
}

// Gets called by GetRootNodes()

private ITestDataTreeNode GetNode(System.Object item, ITestDataTreeNode parent)
{
	String text = ((TreeNode)item).Text;
	ITestDataTreeAttributes attr = new TestDataTreeAttributes(text);
	ITestDataTreeNode node = new TestDataTreeNode(parent, text, null, false);

	System.Collections.ArrayList nodeCache = new System.Collections.ArrayList(20);

	System.Windows.Forms.TreeNodeCollection childrenNodes = ((TreeNode)item).Nodes;

	if ( childrenNodes != null && childrenNodes.Count > 0 )
	{
		int length = childrenNodes.Count;
		if ( length > 0 ) 
		{
			for ( int i = 0; i < length; ++i )
			{
				nodeCache.Add(GetNode(children[i], node));
			}
			int size = nodeCache.Count;
			if ( size > 0 )
			{
				ITestDataTreeNode[] childNodes = new ITestDataTreeNode[size];
				System.Array array = nodeCache.ToArray();
				for ( int i = 0;i < size; i ++ )
					childNodes[i] = (ITestDataTreeNode)array.GetValue(i);
				node.SetChildren(childNodes);
			}
		}
	}
	return node;
}

Comentarios