0

我试图通过在/@And的现有 step-def 实现之上添加标签来重用一些现有的 Step-def 实现@Given@When

但是如果我把它放在它上面,它会禁用现有的链接@Given,如果我把它放在下面,@And它不会启用它的链接@And@Given

请告知,如何解决这个问题并重用现有的步骤定义?

非常感谢

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

1 回答 1

0

如果你想在 And 和 When 中重用它,最简单的可能是从两个方法调用相同的逻辑:

@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),您可以将其与正则表达式匹配,例如:

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

这将匹配“用户发送短信 abcd”和“用户发送命令 efgh”

于 2016-05-03T14:24:34.357 回答