6

これを達成する方法を知っている人はいますか、それとも良い考えだと思いますか。繰り返しを減らしながら人間の可読性を維持するために、Gherkin で OR スタイルの構文を使用する (できれば)。複数のOR文の組み合わせごとに句の組み合わせが展開されるケースを考えています。例えば

Scenario: TestCopy
  Given Some text is selected
  When The user presses Ctrl + C
    OR the user right clicks and selects copy
    OR the user selects Edit + Copy
  Then the text is copied to the clipboard

これは、それぞれ同じ与えられた 3 つのテストとして実行されますが、OR セットからの 1 つの When があります。これは、When 句のプレースホルダーを含むテンプレートを使用して達成できたと思いますが、これはより読みやすく、Given で OR を使用して nxm テストを生成できると思います。アウトラインでは、まだ nxm 行が必要です。

  • これを行うより良い方法はありますか
  • 明示的にコピーして貼り付ける方が良い方法ですか(メンテナンスが面倒になる可能性があると思います)
  • 他のフレームワークはこれをサポートしていますか (FIT を使用するとカスタム テーブルを作成できると思いますが、これもオーバーヘッドのようです)

ありがとう。

4

4 に答える 4

14

シナリオの概要を使用して、1つのシナリオから複数のテストを生成できます。

Scenario Outline: TestCopy
  Given Some text is selected
  When <Copy operation executed>
  Then the text is copied to the clipboard

Examples: 
    | Copy operation executed                |
    | The user presses Ctrl + C              |
    | the user right clicks and selects copy |
    | the user selects Edit + Copy           |

で、Scenario Outline基本的に、提供されたで埋められるテンプレートを作成しますExamples
上記の例では、Specflowは同じGivenおよびThen3つの異なるWhensを使用して3つのテストを生成します。

When The user presses Ctrl + C
When the user right clicks and selects copy
When the user selects Edit + Copy
于 2012-02-01T10:14:30.997 に答える
9

シナリオでこの詳細レベルを使用する (これらのキーを押して右クリックする) ことはお勧めしません。お気づきのように、これにより、それらは長くて反復的になります。また、それは通常、利害関係者が必要としている、または望んでいる情報ではありません。

ステップ定義で実装の詳細を非表示にするのが最善です。あなたのシナリオは次のようになります。

Scenario: TestCopy
  Given some text is selected
  When the user copies the selected text
  Then the selected text is copied to the clipboard

テキストをコピーするさまざまな方法は、3 番目のステップの定義に進みます。

于 2012-02-01T10:06:42.347 に答える
5

nxmのシナリオに関しては、それをやりたいときは、おそらく間違っていると思います。

明示的な例は示していませんが、次のようなものが必要だとします。

Given A block of text is selected
OR An image is selected
OR An image and some text is selected
When The user presses Ctrl + C
OR the user right clicks and selects copy
OR the user selects Edit + Copy

あなたの句を書くThenことは悪夢になるでしょう。

代わりに、2 つのテストを試してください...最初は @nemesv の提案に従いますが、「テキスト選択」を一般的な「選択」に置き換えます。

Scenario Outline: TestCopy
  Given I have made a selection
  When <Copy operation executed>
  Then my selection is copied to the clipboard

Examples: 
  | Copy operation executed                |
  | The user presses Ctrl + C              |
  | the user right clicks and selects copy |
  | the user selects Edit + Copy           |

次に、「有効な選択を行うもの」に対処するための 1 つ以上の追加テストを作成できます。これは、おそらくコピー機能とは無関係に使用する機能によって行われます。たとえば、選択を行って削除を押すとどうなるかなどです。 ...またはctrl-v...またはドラッグアンドドロップ?

選択を行ったときに実行できるすべての有効なアクションに対して、選択を行うすべての有効な方法を乗算する道をたどりたくはありません。

于 2012-02-01T13:13:20.097 に答える
0

コピーと貼り付けは、基本的に同じメソッドを複数回呼び出すだけだと思います。同じステップ定義を使用しているので、それらを複数回呼び出すだけではどうですか。私にとって、コピー/貼り付けは、あなたが望むものを達成します.

于 2012-02-19T01:37:55.663 に答える