从我这个问题的认识,我不认为你需要有一个GUI测试工具在这里。
有我的简单的测试思路:
- 创建一个实例AttributeColumnGenerator。
- 创建一个表格。
- 将项添加到表
- 使用columnId和itemId调用
generateCell
。
- 对该方法返回的Component执行适当的断言。
这里是我的想法
首先的一个片段我ColumnGenerator
谁只创建一个单元格的值的标签。
public class AttributeColumnGenerator implements Table.ColumnGenerator {
public Object generateCell(Table source, Object itemId, Object columnId) {
String textToDisplay = (String)source.getItem(itemId).getItemProperty(columnId).getValue();
return new Label(textToDisplay);
}
}
而且测试方法
@Test
public void attributeColumnGenratortest()
{
AttributeColumnGenerator columnGenerator = new AttributeColumnGenerator();
Table table = new Table();
String columnId = "test";
table.addContainerProperty(columnId, String.class, "");
String itemId = "item1";
Item item = table.addItem(itemId);
item.getItemProperty(columnId).setValue("Value of item1");
Label generateObject = (Label)columnGenerator.generateCell(table, itemId, columnId);
// Assert any properties of the returned Component.
// In this snippet, I only printOut the boolean comparaison.
System.out.println("Value of item 1".equals(generateObject.getValue()));
}
也许它不是最好的解决办法,但它的作品。
希望它的帮助!
问候。
谢谢你,事情是我在很长的逻辑单元创建我的对象类型,以及我处理此表的数据。当它自然被调用时,会自动调用所有项目和属性。如果我手动拨打电话,我能够仅对该特定项目进行测试吗? – Spring
@Spring是的,你正在测试一个指定项目。您将表格作为generateCell方法的参数,因此您可以访问任何项目。我认为用两个嵌套的foreach可以测试任何具有任何属性的项目。例如:for(Item item:table.getItemsId){for(Object propertyId:table.getContainerPropertyIds()){}} – 2012-05-03 09:33:50