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