我从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);