Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cucumber 如何在情景中书写数字_Cucumber_Cucumber Junit_Cucumber Java - Fatal编程技术网

Cucumber 如何在情景中书写数字

Cucumber 如何在情景中书写数字,cucumber,cucumber-junit,cucumber-java,Cucumber,Cucumber Junit,Cucumber Java,我想在这页上写一个数字。请让我知道我怎么写这个 场景大纲:输入无效的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)处理即可。您的步骤定义可

我想在这页上写一个数字。请让我知道我怎么写这个

场景大纲:输入无效的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 {

...

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

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

如果您想将其限制为更具体的数字(只说三位数),您可以将正则表达式细化为类似
[\d]{3}
。Oracle有关于Java正则表达式的课程。

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** errorNum){ ...}

如果您没有使用regex的经验,它会非常有用,因为它会使您的步骤更容易阅读,因为(.*)没有预定义的类型。

但我不想将其作为参数。如果您愿意,您不必使用捕获的int errorNum。或者,您可以使用正则表达式非捕获。不过,这对我来说似乎太过分了。不要使用正则表达式,只使用字符串。在Cuke(ruby)中,当“用户出现错误404页面”时,这将是
,请执行…
欢迎使用SO。据我所知,其他人建议剪切状态代码并将其传递给变量。您确定“400”将正确转换为数字吗?如果您认为您的答案比现有的公认答案更好,请在您的帖子中添加解释。