0

レタスを使ってテスト ケースを定義するのが好きです。多くの場合、レタスのシナリオをアトミックに、またはフィーチャー内の他のシナリオの一部として実行できるように記述するのは簡単です。ただし、Lettuce は、より複雑な統合テストを試して推論し、実装するための便利なツールでもあることがわかりました。このような場合、テストをシナリオに分割することは理にかなっていますが、前のシナリオへの依存関係を定義します。そうすれば、他のどのシナリオを実行する必要があるかを明示的に定義しなくても、シナリオを実行できます。また、シナリオ定義で依存関係を明確にします。これは次のようになります。

Scenario: Really long scenario
    Given some condition
    Given another condition
    Then something
    ...

Scenario: A dependent scenario
    Given the scenario "Really long scenario" has been run
    Given new condition
    Then some stuff
    ...

次に、次のようなことができます。

@step('Given the scenario "([^"]*)" has been run')
def check_scenario(step, sentence):
    scenario = get_scenario(sentence) # This what I don't know how to do
    if not scenario.ran:
        scenario.run()

この状況をどのように処理しますか?このアプローチで見逃している落とし穴はありますか? API ドキュメントとソース コードをざっと見てみると、文字列でシナリオを取得する簡単な方法があるようには見えませんでした。

4

2 に答える 2

1

私が知っている唯一のことは、以前に定義されたステップを呼び出す新しいステップを定義することです。そのトピックに関するチュートリアルを確認してください。たぶん、これは問題の良い回避策になる可能性があります。

于 2013-07-16T16:02:27.780 に答える
0

worldシナリオ間でデータを保存するために使用できます。

@before.each_feature
def feature_setup(feature):
    ...
    world.feature_data = dict()
    ...

アクセスできる場所ならどこからでもこのデータにアクセスできますworld

terrain.pyステップ、シナリオ、機能の間でデータを保存するために、ファイルと混合することができます。

于 2013-07-21T22:02:44.200 に答える