Types de données de test (TestData)

La structure Functional Tester appelle les méthodes proxy getTestDataTypes() et getTestData(String) pour extraire les données des contrôles en vue de leur vérification et de leur référence. Ces méthodes sont utilisées lors de la création et de la lecture des points de vérification des données. Vous pouvez remplacer la méthode getTestDataTypes() pour ajouter des types de données plus spécifiques pour un contrôle.

Par exemple, les types de données pris en charge pour un contrôle TextBox peuvent être text et selected-text. Chacun de ces types est associé à un nom et à une description de chaîne que le proxy définit. Ce nom est transmis à l'API getTestData(String) en vue de l'extraction des données du contrôle. Lors de l'implémentation de l'API getTestData(String), vous devez utiliser les types de données prédéfinis appropriés, les alimenter avec les données de contrôle puis les renvoyer en conséquence.

Diagramme de classes

Le diagramme de classes suivant illustre les types de données de test prédéfinis mis à disposition par Functional Tester :

Types de données de test (TestData)

Les types de données prédéfinis suivants font partie des types de données que vous pouvez utiliser lors de l'implémentation de l'API de proxy getTestData().

TestDataText

Le type TestDataText représente une valeur de chaîne.

Cet exemple de code illustre l'implémentation du type de données TestDataText dans 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 ;

Cet exemple de code illustre l'implémentation du type de données TestDataText dans .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

Le type TestDataList représente une liste d'éléments : il peut s'agir des éléments d'une zone de liste et de la colonne unique d'un tableau.

Cet exemple de code illustre l'implémentation du type de données TestDataList dans 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));

Cet exemple de code illustre l'implémentation du type de données TestDataList dans .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

Le type TestDataTable représente des données bidimensionnelles se trouvant dans des contrôles tels que des tableaux ou des grilles.

Cet exemple de code illustre l'implémentation du type de données TestDataTable dans 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;

Cet exemple de code illustre l'implémentation du type de données TestDataTable dans .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

Le type TestDataTree représente une structure de données d'arborescence.

Cet exemple de code illustre l'implémentation du type de données TestDataTree dans .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;
}

// Est appelé par 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;
}

Retour d'informations