Cucumber 7 regex on step definition

Cucumber 7 regex on step definition

我是 cucumber 和 regex 的新手。 我目前正在为一个项目使用cucumber core 7.2.0。

出于某种原因,我似乎无法在步骤定义中使用正则表达式。

例如我有以下

Scenario: User tries to login

When I enter valid credentials for test@test.com 


 

然后是步骤定义class

@When("I enter (.*) credentials for {word}")
 public void iEnterMyCredentialsAsUser(String email) {
      System.out.println(email);

}

虽然该功能发现步骤定义很好,但在执行时我得到以下结果

io.cucumber.junit.UndefinedStepException: 步骤'I enter valid credentials for testa30'未定义。 您可以使用以下代码片段实施此步骤:

   @When("I enter valid credentials for testa30")
   public void i_enter_valid_credentials_for_testa30() {
   // Write code here that turns the phrase above into concrete actions
   throw new io.cucumber.java.PendingException();
 }

基本上我只想关心电子邮件作为参数而不关心“有效”

要让 Cucumber 知道您正在使用正则表达式,请以 ^ 开始您的定义并以 $ 结束。查看详细信息 here

此外不要混淆正则表达式和黄瓜表达式。当您使用正则表达式方法时,不支持像 {word} 这样的语法。