如何在黄瓜场景中写数字

How to write numbers in cucumber scenarios

我想在黄瓜页上写一个数字。请让我知道我该如何写这个。

场景大纲:输入无效 URL

Given the context "Invalid URL" is open on "Market" 
  When user is on the error 404 page
  Then page not found message is displayed

但是我观察到404被当成了参数

当然,您只需在步骤定义中将其作为正则表达式 (regex) 处理即可。您的步骤定义可以如下所示:

@When("^When user is on the error \"(\d+)\" page$")
public void When_user_is_on_the_error_page(int errorNum) throws Throwable {

...

}

这将处理一位或多位数字。 \d代表一个数字,+号代表“1个或多个”。

我个人喜欢用双引号 ("") 将我的参数括起来,因为这样 IDE 就会理解它是一个参数,并且可以帮助您完成自动完成等操作。

如果您想将其限制为更具体的数字(例如仅三位数),您可以将正则表达式优化为 [\d]{3} 之类的内容。 Oracle 有关于 Java 正则表达式 here.

的课程

When user is on the error 404 page

您可以在步骤中使用:

@When("^When user is on the error (.*) page$")
   public void When_user_is_on_the_error_page(int errorNum) {
      ...
    }

(.*) 将获取该槽中的任何内容,并用作将由 () 之间的类型定义的变量。在这种情况下,'400' 将被转换为 int,感谢:

(**int** errorNum){ ...}

如果您没有练习过正则表达式,它会非常有用,因为它会使您的步骤更容易阅读,因为 (.*) 没有预定义的类型。