0

機能シナリオの違いに光を当てる背景情報を探しています。

言ってやるが、私はファイルを持っているuse_administration.feature

Feature: Use administration area

  So that I can administrate the application
  As an administrator
  I can visit the administration area

  Scenario: Get a login form
    Given I am not logged in
    When I visit the administration dashboard
    Then I should see a login-form

  Scenario: Access the Dashboard
    Given I am not logged in
    And there is a user "admin@example.com" with password "password"
    When I log in with username "admin@example.com" and password "password"
    Then I should see a dashboard

これらのシナリオはかなり明確に定義されていると思います。

ただし、別のものを見るとFeature、問題はより明確になります

Feature: Manage campings

  So that a writer can manage her campings
  As a logged in writer
  I want to update and delete campings

  Scenario: Logged in writer can create a new camping
    Given I am administrator
    And no campings on the campings listing
    When I create a Camping named "Beautifull Green"
    And I visit the "Campings" administration page
    Then I should see a camping "Beautifull Green"

  Scenario: Logged in writer sees own campings dashboard
    Given I am administrator
    And I have a camping "Beautifull Green"
    When I visit the administration dashboard
    Then I should see a panel titled "My Campings"
    Then I should see camping "Beautifull Green"

  Scenario: Logged in writer can update campings
    Given I am administrator
    And I have a camping "Beautifull Green"
    When I visit the update page for "Beautifull Green"
    And I update the name to "updated!"
    And I visit the "Campings" administration page
    Then I should see a camping "updated!"

  Scenario: Logged in writer can update camping from dashboard
    Given I am administrator
    And I have a camping "Beautifull Green"
    When I visit the administration dashboard
    Then I should see the "edit"-link for "Beautifull Green"

これらのシナリオの多くは重複しているため、おそらくそれ自体が機能であるはずです。重複は主に共有ステップでカバーされていることに注意してください。それでもなお、多くの繰り返しがあります。

私の主な質問は、いつ何かが機能であり、いつそれがシナリオであるかということです。経験則はありますか?機能に含まれるシナリオの数に関するグッドプラクティスはありますか?それとも私はこのトピック全体を完全に誤解していますか?

4

1 に答える 1

1

私の意見では、これはすべて実生活での組織化スキルに関するものです。平易な英語でシナリオを明確に説明できれば、それで十分です。

2 番目の機能を確認してみましょう。多くの問題があります。

  1. ユーザーの役割とは何ですか? ライターまたは管理者?あなたはそれらの両方を 1 つの機能で言及しました。それは受け入れられません。

  2. 記述形式に問題があります。正しい英語ではありません。そのはず:

    In order to keep my campaigns up to date
    As a logged in writer
    I want to manage my campaigns
    

    また

    As a logged in writer
    I want to manage my campaigns
    So that I can keep my campaigns up to date
    

    ここにいくつかのメモ

    • シナリオで CRUD について言及しましたが、前の説明は更新と削除のみです。
    • 「キャンペーンの管理」はビジネスの目標ではなく、活動です。そのため、「キャンペーンを最新の状態に保つ」を使用してそれを置き換えます。
  3. シナリオに「私が管理者であると仮定して」と「そして私はキャンプ '美しい緑' を持っています」の重複があります。それは不要です。を使用Backgroundして説明する必要があります。例えば:

    Background:
      Given I have logged in as an Administrator
      And I have a camping "Beautifull Green"
    

    これらにより、すべての複製が保存されます。をテストしたい場合はCreate、同じ "Nice Red" という別の名前を代わりに使用してください。

  4. シナリオのタイトルが長すぎます。お題はいらない。ユーザーと背景については既に説明しました。タイトルは次のとおりです。

    Scenario: Create new campaign
      # description here
    Scenario: Update campaign
      # .....
    

これらが役立つことを願っています。

于 2012-12-06T12:49:24.897 に答える