我们在带有 webdriver 的自动化项目中使用黄瓜。没有问题是,是否可以在特征文件中进行迭代。例如,我们需要运行一个方法 50 次。有没有办法在功能文件本身中调用该方法 50 次。
问问题
7320 次
2 回答
4
如果我理解正确,您希望将循环构造直接放在功能文件中。这是不可能的。Gherkin(特征文件中使用的语言)中没有循环结构(for、while、...)。当然,您可以随意使用标准 Java/Ruby 结构在步骤定义中进行迭代,但我相信您已经意识到这一点。
Gherkin 中最接近迭代的可能是带有多行数据表参数的步骤(请参阅“数据表”部分)。但这只会使步骤定义中发生的“更多一件事”更加透明。不确定这是否对您有用。
所有这一切都说:你为什么想要那个?您绝对应该保留技术性内容,例如在功能文件中迭代 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
于 2013-08-21T05:40:33.590 回答
0
您可以调用 50 次您的方法。我正在使用 cucumber-ruby,所以我在下面描述如何调用方法 50 次。
支持/帮助/test.rb
def test_method
end
特征/step_definitions/test_steps.rb
50.times do |count|
test_method
end
于 2013-08-19T12:52:28.947 回答