1

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

4

2 回答 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 回答