2012-03-27 1 views
2

フィーチャファイルにバックグラウンドと複数のシナリオがありますが、バックグラウンドロジックを実行する必要のない同じフィーチャに関連するシナリオが必要な場合は、シナリオだけを無効にすることはできますか?BDD - キュウリ:機能内の1つのシナリオに対してのみバックグラウンドロジックを無効にすることはできますか?

UPDATE - 例を追加します。

Feature: Sign Up 

    In order to access to protected parts of site 
    A user 
    Should sign up 

    Background: 
    Given I am on sign up page 
    And I am not logged in 

    Scenario: User sign up succesfully 
    When I sign up with valid fields 
    Then I should view dashboard page 

    Scenario: User altredy sign up 
    When I sign up with altredy registred user e-mail 
    Then I should view altredy sign up message and link to forgot password page 

    Scenario: User try to sign up with missing/wrong data 
    When I will try to sign up with missing/wrong data 
    Then I should error message 

    Scenario: User altredy sign in 
    #here disable background 
    Given I am logged in 
    When I am on sign up page 
    Then i should be redirect to dashboard page 
+0

なしに必要なものは何でも。 – p0deje

+1

幸いにもいいえ。 – iafonov

+0

@iafonovなぜですか?思考が役に立つところでスニペットを追加しました... – byterussian

答えて

0

私は完全にバックグラウンド句を取り除くだろう - それは、不必要な詳細です。あなたのシナリオは、それがなくても完璧に理解できます。

サインアップページにアクセスして、「有効なフィールドでサインアップする」ステップ定義の一環として、ユーザーがまだサインインしていないことを確認することができます。あなたがそこには背景がいないか、それが2

自身の背景

ソリューションのしている他のフィーチャーファイル内の唯一のシナリオは、機能ファイルから背景を削除することを置くことができる

0

ソリューション1.

とその後、それぞれの最初のステップ

で、その後、ステップ定義に

Given 'I am on sign up page' do 
    some code here 
end 

Given 'I am not logged in' do 
    some code here 
end 

のようなものをそのロジックを置きます

Given 'I sign up with valid fields' do 
    step 'I am on sign up page' 
    step 'I am not logged in' 
    the rest of your code for this step 
end 

Given 'I sign up with altredy registred user e-mail' do 
    step 'I am on sign up page' 
    step 'I am not logged in' 
    the rest of your code for this step 
end 

Given 'I will try to sign up with missing/wrong data' do 
    step 'I am on sign up page' 
    step 'I am not logged in' 
    the rest of your code for this step 
end 

これは少なくとも3回繰り返すが、これはあまり意味がありません。

ソリューションは、3

は、あなたはそのシナリオを取り除くと、それは最初のシナリオの手順だあなたはそのセッションを閉じてステップ定義を作成しないのはなぜ

Scenario: User sign up succesfully 
    When I sign up with valid fields 
    Then I should view dashboard page #this is your Given I am logged in step 
    When I am on sign up page 
    Then i should be redirect to dashboard page 
0

のようなものを貼り付けますでしょうか? このような何か:

Then(/^I close the browser$/) do 
    page.driver.quit 
end 

次に、あなたがあなたの後続のステップ残念なことに

関連する問題