2012-02-01 20 views
1

私はキュウリには非常に新しいので、フィーチャBにあるシナリオBを実行する前に、フィーチャAにあるシナリオAを実行しなければならない状況があります。キュウリ、私は@Afterと@Beforeをフィーチャーに使用しましたが、どうすればこのようなクロスフィーチャーの依存関係を処理できますか?どうもありがとう。キュウリの依存性

+2

これはコードメイルのように聞こえる - 機能は独立しているはずです。 –

+0

は「登録」機能に依存する「プロファイルを管理する」ではないでしょうか? – Tarun

答えて

4

あなたのシナリオは独立していなければなりません(受け入れテスト、単体テストなど)。テスト/スペックの順序について決して仮定しないでください。

各シナリオの前後に共通の操作(またはタグでタグ付けされた各シナリオ)を実行する必要がある場合は、BeforeAfterフックを使用します。

あなたが機能で各シナリオの前に同じ初期化を行う必要があり、あなたはがあなたのFeatureのテキストにこの初期化について明示的になりたい場合は、Backgroundを使用することができます。

Feature: some feature 

    Background: logged in 
    Given I am logged in as administrator 

    Scenario: some scenario where user will be logged in 

注:Beforeフック前に実行Backgrounds

+0

ありがとうアレックス、これは非常に非常に有用で教育的だった。最後に、バックグラウンドと同様の質問があります。これは、シナリオを実行した後にシナリオを実行したい場合に、典型的にはCucumberでどのように実行されているかです。たとえば、TestNGには@AfterClassというタグがあります。これは基本的には解体のようなものです。たとえば、アカウントの状態をいくつか変更しました。この最後のシナリオでは、アカウントを元の状態に戻したいと考えています。 –

+0

通常、ティアダウン(およびセットアップ)ロジックは実装の詳細で、* Before *、* After *または** Around **フックで実装されています(仕様の読者はこれらの技術的なことについて知る必要がないため)。キュウリのフックについて詳しくはこちら[https://github.com/cucumber/cucumber/wiki/Hooks]をご覧ください。 'Background'は、あなたの風景に共通の顧客が読める(技術的ではない)背景を提供するときに便利です。 「背景」には逆の方法はありません。キュウリの開発者から「バックグラウンド」用法についてのアドバイスがいくつかここに書かれています(https://github.com/cucumber/cucumber/wiki/Background)。 –