1

Behave BDD テストを開始すると、AmbiguousStep 例外が発生しやすいステップ定義の名前空間が存在しないことがわかりました。ここでのベストプラクティスは何ですか? テスト プロジェクトが大きくなると、これは問題になると思います。

これが私がやろうとしていることです:

機能-1:

Feature: feature1
  Scenario: f1s1
    When take action
    Then it's ok

機能-2:

Feature: feature1
  Scenario: f2s1
    When take action
    Then it's ok

foo4feature1.py:

@when('take action')
def step_impl(context):
    assert True

@then("it's ok")
def step_impl(context):
    assert True

bar4feature2.py:

@when('take action')
def step_impl(context):
    assert True # some other logic here according to feature2

私の 2 つの機能 (機能 1機能 2 ) の両方にステップ実行アクションがあります。これらの 2 つのステップは、それぞれのシナリオにおいて、互いに異なる意味を持ちます。それらはたまたま同じ名前です (例: take action )。競合を避けるために、ステップの名前を慎重に選択できることを知っています (たとえば、 feature2の「アクションを実行する」の代わりに「f2 のアクションを実行する」を使用します)。ただし、大規模なテスト プロジェクトでは、他の全員の機能のステップ名を全員が覚えていることを保証することはできません。BDD の初心者として、この問題を処理するために従うべきベスト プラクティスを探しています。

4

3 に答える 3

1

一般に、手順は簡潔にする必要があります (これはほとんどの BDD フレームワークに当てはまります)。したがって、1 つのディレクトリ スコープ内の同じステップが持つ意味は 1 つだけです。同じステップ (テキスト) に 2 つの異なる意味が必要な場合は、現在、異なるディレクトリを使用する必要があります。

将来、behavior は「機能固有」のスコープ コンセプトを提供します。これにより、あなたが望むことを正確に行うことができます。

于 2015-02-20T22:18:25.783 に答える