5

機能ファイルがあります

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

したがって、上記はすべて正常に実行され、実際にホームページに戻っており、サインアウト リンクが存在することを表明します。

そして今、別の機能ファイルがあります。

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

ステップを実行する前"When I go to my account page"に、ユーザーは"Create Profile".

だから私がしたことは、

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

前にWhen I go to my account page

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

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

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

4

2 に答える 2

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 キュウリ アノテーションも参照してください。これにより、以前のソリューションが機能しない場合に、テスト用のアカウントを初期化 (または作成) するコードを実行できます。

于 2012-04-24T13:11:25.860 に答える
1

Create Profile機能は、Given/When/Then を指定します。これが機能の実装を推進しているためです。

その他の多くの機能では、有効なプロファイルが存在する必要があります。の仕様を繰り返して、これらの機能のプロファイルを作成しないでくださいCreate ProfileGiven I have a valid profile代わりに、 (おそらくバックグラウンド セクションに)の行に沿って何かを含め、それをプロファイルを作成するフィクスチャ コードに接続します。

于 2012-07-26T09:15:18.137 に答える