我们正在使用webdriver在我们的自动化项目中使用黄瓜。没有问题是,如果可以在特征文件中进行迭代。例如,我们需要运行50次方法。有没有办法在功能文件本身中调用该方法50次。
答案 0 :(得分:3)
如果我理解正确,您希望直接在功能文件中使用循环结构。这是不可能的。 Gherkin中没有循环结构(for,while,...),这是特征文件中使用的语言。当然,您可以使用标准Java / Ruby构造在您的步骤定义中进行迭代,但我确信您已经知道了。
Gherkin中最接近迭代的事情可能是multiline data table argument的一步(参见“数据表”部分)。但这只会使步骤定义中出现“更多一件事”更加透明。不确定这对你有用。
所有这一切:为什么你想要那个?你绝对应该保留技术性的东西,例如在特征文件的 out 上迭代50次,并在步骤文件中隐藏它。使用这样的东西:
功能文件:
....
When the user clicks the button 50 times
...
步骤文件(Java):
@When("the user clicks the button (\\d+) times")
public void theUserClicksTheButton(int howOften) {
for (int i = 0; i < howOften; i++) {
// do stuff for one click here
}
}
或者,在Ruby中:
When /^the user clicks the button (\d+) times$/ do |how_often|
how_often.to_i.times do |count|
# do stuff for one click here
end
end
答案 1 :(得分:0)
您可以拨打50次方法。我正在使用黄瓜红宝石,所以我在下面描述如何调用方法50次。
支持器/辅助/ test.rb
def test_method
end
特征/ step_definitions / test_steps.rb
50.times do |count|
test_method
end