如何避免在Gherkin中将数字捕获为数字参数?

时间:2016-03-10 22:18:24

标签: cucumber cucumber-jvm gherkin

我是Gherkin的新手。

我在Gherkin写下以下声明:

Given user have institution_1 in database

这里的institution_1对我来说只是一个普通名词,我不希望它是一个变量或者有索引" 1"。

Cucumber-JVM自动生成的Java函数是:

@Given("^user have institution_(\\d+) in database as follows:$")
public void user_have_institution__in_database(int arg1) throws Throwable {
}

如何重写它以便Cucumber-JVM能够识别" 1"没有特别的意义,并回到我这样的事情:

@Given("^user have institution_1 in database as follows:$")
public void user_have_institution_1_in_database() throws Throwable {
}

谢谢!

编辑: 我的问题是:Cucumber-JVM看到每个数字都是Gherkins作为数字参数,例如,

"institution_1" 

转换为:

 "institution_(\\d+)" 

并且java函数将具有

(int arg1) 

参数。

我想要的是让Cucumber-JVM不能转换为:

@Given("^user have institution_(\\d+) in database as follows:$")

但是有点像:

@Given("^user have institution_1 in database as follows:$") 

或其他形式,其中正则表达式将捕获它但没有参数。因为在常识中,XXXXX_1中的1不是数字参数,而是字符。

如果那不可能,我怎么能让它起作用?

@Given("^user have institution_(\\d+) in database as follows:$")
public void user_have_institution__in_database() throws Throwable {
}

1 个答案:

答案 0 :(得分:2)

手动将生成的小黄瓜编辑为:

@Given("^user have institution_1 in database as follows:$")
public void user_have_institution_in_database() throws Throwable {
}