Automation 在Cucmber step def中现有子句的上方添加@和标记将禁用原始标记[JVM]

Automation 在Cucmber step def中现有子句的上方添加@和标记将禁用原始标记[JVM],automation,automated-tests,cucumber-jvm,cucumber-java,Automation,Automated Tests,Cucumber Jvm,Cucumber Java,我试图重用一些现有的Step-def实现,在给定的/@的现有Step-def实现上添加@和标记 但是如果我把@和放在它上面,它会禁用给定的@的现有链接 &如果我把它放在给定的@下面,它就不能启用@和的链接 敬请告知,如何解决此问题并重用现有step DEF 非常感谢 @And("^User sends SMS \"([^\"]*)\"$") @When("^User sends the command \"([^\"]*)\"$") public void User_sends_the_comm

我试图重用一些现有的Step-def实现,在给定的
/
@的现有Step-def实现上添加
@和
标记

但是如果我把
@和
放在它上面,它会禁用给定的
@的现有链接
&如果我把它放在给定的
@下面,它就不能启用
@和
的链接

敬请告知,如何解决此问题并重用现有step DEF

非常感谢

@And("^User sends SMS \"([^\"]*)\"$")
@When("^User sends the command \"([^\"]*)\"$")
public void User_sends_the_command(String sUserCommand) throws Throwable {
..
..
}

如果您想在和和时都重用它,最简单的方法可能是从两个方法调用相同的逻辑:

@When("^User sends the command \"([^\"]*)\"$")
public void User_sends_the_command(String sUserCommand) throws Throwable {
  doLogic(sUserCommand);
}

@And("^User sends SMS \"([^\"]*)\"$")
public void user_sends_sms(String sms) throws Throwable {
  doLogic(sms);
}
如果要在另一个When(或And)中继续使用When(或And),可以将其与regexp匹配,例如:

@And("^User sends (?:SMS|the command) \"([^\"]*)\"$")
public void User_sends_the_command(String sUserCommand) throws Throwable {
..
..
}
这将匹配“用户发送短信abcd”和“用户发送命令efgh”