我迈出了一步
Given I have a pass
|hotel|
和
Given I have a pass
一个运行有数据,一个运行没有数据。为了满足上述要求,我编写了两个函数:
@Given("^I have a pass$")
public void givenIhaveAPass() {
}
和
@Given("^I have a pass$")
public void givenIhaveAPass(DataTable table) throws Exception {
}
但是它给出了错误DefinitionTestSuite.initializationError DuplicateStepDefinition Duplicate
想要对方法重载使用同一步骤。我该怎么办?
答案 0 :(得分:0)
我认为这是不可能的,因为匹配仅通过正则表达式完成,而不考虑参数。您可以只做两个
Given I have a pass with:
|hotel|
和
Given I have a pass
并在您的两个java方法中将它们匹配。这样,您也可以给他们一个更清晰的名称。
答案 1 :(得分:0)
这不适用于黄瓜。在cucumber的github问题页面上,关于您的问题的问题太多了。
作为解决方案的一种,我可以建议以下方法。
使用(.*)
时,您不必在调用步骤定义
@Given("^I have a pass(.*)$")
public void givenIhaveAPass() {
}
@Given("^I have a pass$")
public void givenIhaveAPass(DataTable table) throws Exception {
}