7

Cucumber を使用してショッピング カート、BDD を開発しているとします。カートはかなり複雑で、さまざまな機能が備わっていますが、これは「ブログ」や「ユーザー プロファイル」にも当てはまります。

私は常に「カート」を機能と見なし、ベルとホイッスルをシナリオと見なしてきました。ただし、これは大きなFeatureファイルを作成する可能性があり、 Scenarioの文字通りの意味に反します。これがどのように見えるかです:

Feature: Cart

  So that I can buy items
  As a user
  I want to place items in a cart


  #.... Many more scenarios

  Scenario: Empty a filled cart
    Given 2 products in my cart
    When I visit the cart page
    And I press "Empty cart"
    Then I should see the text:
      """
      Your cart is empty.
      """

  Scenario: Empty an empty cart
    Given 0 products in my cart
    When I visit the cart page
    Then I should not see the "Empty cart" button

  # Many more Scenario's

詳細を記入すればするほど、この「空のカート」グループは長くなります。「カートを空にする」はスタンドアロンの機能と見なすべきでしょうか? これにより、多くのFeatureが発生し、すべてに少数のScenarioが含まれます。その後、シナリオは「コンテキスト」のようになります。そのようです:

Feature: Emptying Cart

  So that I can reconsider my shopping-spree
  As a user
  I want to empty my cart

  Scenario: with a filled cart
    Given 2 products in my cart
    When I visit the cart page
    And I press "Empty cart"
    Then I should see the text:
      """
      Your cart is empty.
      """

  Scenario: with an empty cart
    Given 0 products in my cart
    When I visit the cart page
    Then I should not see the "Empty cart" button

何かをFeatureにするための適切なガイドラインは何ですか? シナリオを独自の機能に再グループ化する必要があるのはいつですか? フィーチャーには通常いくつのシナリオがありますか?

4

2 に答える 2

3

フィーチャをフォルダにグループ化できます。たとえば、フォルダと、などcartのフィーチャ ファイルがある場合があります。emtpy_cart.featureupdate_cart.feature

厳密なルールはありませんが、個人的には、1 つの機能ファイルに約 8 つ以上のシナリオを入れることはありません。

機能を構築する方法の優れた例については、Relish 自身のドキュメントをご覧ください: https://www.relishapp.com/relish/relish

于 2013-04-17T22:33:45.960 に答える