我有一步
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
想要与方法重载使用相同的步骤。我怎样才能做到这一点?
我不认为这是可能的,因为匹配仅使用正则表达式,而不考虑参数。你可以做两个
Given I have a pass with:
|hotel|
和
Given I have a pass
并在两个java方法中匹配它们。这样你就可以给他们一个更清晰的名字。
这在黄瓜中不适用。在cucumber的github问题页面中,关于您的问题已经打开和关闭了很多问题。
作为解决方案,我可以建议以下方法。使用(.*)
时,在调用步骤定义时,不必提供任何参数,只需删除'string'部分:
@Given("^I have a pass(.*)$")
public void givenIhaveAPass() {
}
@Given("^I have a pass$")
public void givenIhaveAPass(DataTable table) throws Exception {
}