gpt4 book ai didi

java - Vaadin:如何使用 JUnit 测试 generatedCells

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:58:10 26 4
gpt4 key购买 nike

在 Vaadin 中,您可能知道重写的 generateCell 方法仅在 Table 需要构建其可见内容时调用。因此,当我为此类编写 JUnit 测试时,我无法触发 generateCell 方法并对其进行测试。我该如何测试这个想法?或者我是否必须为此使用 GUI 测试工具(我不想这样做,因为它的许可证非常昂贵)

public class AttributeColumnGenerator implements Table.ColumnGenerator {    
@Override
public Object generateCell(Table source, Object itemId, Object columnId) {
//lots of code here to be tested
}
}

最佳答案

根据我对问题的理解,我认为你不需要在这里有一个 GUI 测试工具。

这是我对简单测试的想法:

  1. 创建一个实例 AttributeColumnGenerator。
  2. 创建一个表。
  3. 向表中添加一个项目
  4. 使用 columnId 和 itemId 调用 generateCell
  5. 对该方法返回的组件执行适当的断言。

这是我的一个片段

首先是我的 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()));
}

也许这不是最好的解决方案,但它确实有效。

希望对您有所帮助!

问候。

关于java - Vaadin:如何使用 JUnit 测试 generatedCells,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10409801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com