2012-04-24 9 views
4

は、私が機能ファイルにcucumber-jvmの別の機能の中で機能を呼び出す方法は?

Feature: Create Profile 

Scenario: Create Profile 
Given I want to create a profile 
When I create a profile 
Then I should be navigated to Home Page 
Then sign out link should exist 

を持っているので、上記はすべて、[OK]を実行し、それが戻っホームページで確かだと看板アウトリンクが存在すると主張しています。

もう1つの機能ファイルがあります。 "When I go to my account page"ステップを実行する前に

Feature: Go to my account page 

Scenario: Go to my account page 
Given I want to go to my account page  
When I go to my account page 
Then I should be navigated to the my account page 

、ユーザーが"Create Profile"必要があります。

だから何私がやったことは、私がWhen I go to my account page

When I create a profile 
Then I should be navigated to Home Page 
Then sign out link should exist 

を付加しました。

しかし、「プロファイルの作成」機能/シナリオにある同じコードが重複していることがわかります。

「アカウントに移動」のシナリオで、「プロファイルの作成」機能/シナリオ全体を実行するにはどうすればよいですか?

私はcucumber-jvmをSeleniumとJUnitで使用しています。

+0

'CreateProfile'またはフィーチャー' VerifyProfile'に関連するすべてのメソッドを呼び出す 'createOrVerifyProfile'メソッドを作成する必要があります。 –

答えて

1

背景DSL機能はありますか?あなたのケースではうまくいくでしょうが、文字通りあなたが尋ねていることではないでしょう。この場合、ユーザーにプロファイルを作成するように要求することができます。

Feature: Create Profile 
    Background: 
    Given I create a profile 
    And I should be navigated to Home Page 
    And sign out link should exist 

    Scenario: Create Profile 
    # do nothing because all actions are in background 

    Scenario: Go to my account page 
    When I go to my account page 
    Then I should be navigated to the my account page 

ただし、2つの機能ファイルを1つの機能ファイルにマージする必要があります。

また、@Beforeと@Afterキュウリのアノテーションを見てください。これにより、以前のソリューションがうまくいかない場合には、テスト用のアカウントを初期化(または作成)するコードを実行できます。

+0

'Background:'の別のフィーチャーファイルにリンクすることが可能です。それは完璧だろう。 '@Before'と '@After'はフィーチャーファイルを実行できません。 – user1559625

1

フィーチャーは、フィーチャーインプリメンテーションを推進しているものであるため、フィーチャー/時/時を指定します。

他の多くの機能には、有効なプロファイルが必要です。 Create Profileから指定を繰り返すことで、これらの機能のプロファイルを作成しないでください。代わりに、Given I have a valid profileの行に沿って(背景のセクションにあるかもしれない)何かを含めて、プロファイルを作成するフィクスチャーコードにそれを配線します。

関連する問題