如何在黄瓜的特征文件中进行迭代

时间:2013-08-16 11:49:36

标签: java webdriver cucumber gradle

我们正在使用webdriver在我们的自动化项目中使用黄瓜。没有问题是,如果可以在特征文件中进行迭代。例如,我们需要运行50次方法。有没有办法在功能文件本身中调用该方法50次。

2 个答案:

答案 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