Por exemplo, um controle TextBox pode ter texto e texto selecionado como tipos de dados suportados. Cada um desses tipos é associado com um nome e uma descrição de cadeia que o proxy define. Esse nome é transmitido à API getTestData(String) para obter os dados de controle. Enquanto implementa a API getTestData(String), você deve usar os tipos de dados predefinidos apropriados e populá-los com dados de controle, retornando-os de acordo.
O seguinte diagrama de classe mostra os tipos de dados de teste predefinidos que o Functional Tester torna disponível:
Os seguintes tipos de dados predefinidos são alguns dos tipos de dados que você pode usar enquanto implementa a API do proxy getTestData()
TestDataText
O tipo TestDataText representa um valor de cadeia.
Este código de exemplo mostra como implementar o tipo de dado TestDataText em 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 exemplo mostra como implementar o tipo de dado TestDataText em .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
O tipo TestDataList representa uma lista de itens, por exemplo, itens em um ListBox e uma única coluna de uma tabela.
Este código de exemplo mostra como implementar o tipo de dado TestDataList em 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; } diferente testData.add(null); } return (new TestDataList(testData));
Este código de exemplo mostra como implementar o tipo de dado TestDataList em .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 ; diferente 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
O tipo TestDataTable representa dados bidimensionais que estão contidos em controles como tabelas ou grades.
Este código de exemplo mostra como implementar o tipo de dado TestDataTable em 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 exemplo mostra como implementar o tipo de dado TestDataTable em .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
O tipo TestDataTree representa uma estrutura de dados em árvore.
Este código de exemplo mostra como implementar o tipo de dado TestDataTree em .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; } // Chamado por 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; }