1

webdriver を使用した自動化プロジェクトでキュウリを使用しています。機能ファイルに反復を含めることが可能かどうかは疑問ではありません。たとえば、メソッドを 50 回実行する必要があるとします。機能ファイル自体でそのメソッドを 50 回呼び出す方法はありますか。

4

2 に答える 2

4

私の理解が正しければ、機能ファイルにループ構造を直接入れたいと思うでしょう。これは不可能です。フィーチャ ファイルで使用される言語である Gherkin には、ループ コンストラクト (for、while、...) はありません。もちろん、標準の Java/Ruby コンストラクトを使用して、ステップ定義で好きなだけ反復を行うことができますが、それを認識していると確信しています。

Gherkin での反復に最も近いのは、おそらく複数行のデータ テーブル引数を持つステップです(セクション「データ テーブル」を参照)。ただし、これは、ステップ定義で「1 つ以上のこと」が発生することをより明確にするのに役立ちます。それがあなたにとって役立つかどうかはわかりません。

そうは言っても、なぜそれが欲しいのですか?機能ファイルから何かを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 に答える