Cucumber6通过Java11数据表转换为枚举列表



我从Cucumber4>更新了项目;Cucumber6和来自JDK8>JDK11.问题出在我的几个测试上。我有一个场景:

Then Relevant link on Checkout page is valid
# LinkType enum
| LOGO | LOGIN | TERMS | PRIVACY_POLICY | CONTACT | FAQ |

代码实现是:

@Then("^Relevant link on Checkout page is valid$")
public void relevantLinkOnCheckoutPageIsValid(DataTable dataTable) {
List<LinkType> links = dataTable.asList(LinkType.class);

这一直有效,直到更新。问题是旧的转换已经不起作用了,我也没有找到如何添加新的转换器,这样我就可以将dataTable转换到我拥有的枚举列表中。

有人能提出一些建议吗?或者链接一些文档,让我检查要实现什么?

https://github.com/cucumber/cucumber-jvm/tree/main/java#data-台式

像这样的东西应该可以做到:

@DataTableType
public LinkType linkType(String cell) {
return LinkType.valueOf(cell);
}
@Then("^Relevant link on Checkout page is valid$")
public void relevantLinkOnCheckoutPageIsValid(@Transpose List<LinkType> links) {
}

数据表类型将把每个表单元格转换为LinkType枚举的实例。然后在步骤定义中,@Transpose注释将转置该表,使其现在是一个垂直列表,而不是一个水平列表。然后Cucumber将使用数据表类型将单个细胞转换为List<LinkType>

您也可以使用:

List<LinkType> links = dataTable.transpose().asList(LinkType.class);

最新更新