Frage

Wie gehen Sie mit User Stories / Abnahmen, die lange Ketten wie diese haben, wo die Then / Wenn mingle zusammen? Ist es am besten, diese in einem separaten Abnahmeprüfung zu spalten, wo man Tests, dass der Dialog erscheint und dann die zweite testet das Verhalten nach dem Dialog angezeigt wurde?

Feature: Confirmation before removing products from cart
  In order to avoid accidentally removing an item from my cart
  As a Customer
  I want a confirmation dialog to ask me if I'm sure I want to remove an item

  Scenario: I want to remove an item from my cart
    Given I have added item "xyz" to my cart
    When I click "Remove"
    Then a confirmation dialog pops up
    And it asks "Are you sure you want to remove this from your cart"
    When I click "Yes"
    Then item "xyz" should be removed from my cart
War es hilfreich?

Lösung

scheint Ihr Szenario ein wenig lang, und es ist ziemlich stark an die gui gebunden. Was würde passieren, wenn Sie es auf die Fähigkeiten des Systems statt gebunden?

Scenario: I want to remove an item from my cart
  Given I have a cart containing "xyz"
  When I remove "xyz" from my cart
  Then my cart should be empty.

Das Szenario beschreibt nun Dinge, die für den Benutzer nützlich sind, und es ist einfacher zu refactor.

Ich liebe BDD so viel wie ich tue, weil ich eine Situation ähnlich wie dies hatte. Wir hatten 120 Abnahmen und sie waren meist versagt. Jemand hatte ein Bestätigungsdialogfeld in viel setzen, wie die, die Sie beschreiben, und sofort brach über 80 Abnahmen. Durch sie in Szenarien mit High-Level-Drehen, wiederverwendbare Schritte statt, können wir leicht Refactoring und die Tests weiterarbeiten, auch wenn die Mechanismen, mit denen wir die Möglichkeiten des Systemwechsels umzusetzen. Die tatsächliche Klicken der Tasten geschieht innerhalb dieser wieder verwendbaren Schritte, und es ist OK pro Schritt mehr als eine UI-Aktion zu haben.

Ich schrieb hier ein Szenario, das dies tut, wenn es sinnvoll ist (es ist ein DSL eher als Englisch, aber Sie sollten auf die Idee kommen):

http://code.google .com / p / wipflash / source / browse / Example.PetShop.Scenarios / PetRegistrationAndPurchase.cs

Andere Tipps

Die Frage ist wirklich ein, was die „Zweige“ sind.

Wenn es mehr Schritte muss Benutzer Auswahl bei jedem Schritt. Es sollten mehrere sein „Wenn“ s. Dies sollte bei jedem Zweig einen reichen Baum mit vielen vom Benutzer gewählten Alternativen bilden. Jedes mögliche Ergebnis sollte seinen eigenen Test müssen die verschiedenen Entscheidungen zu treffen und zu diesem Ergebnis zu kommen.

Eine Dreischrittfolge mit zwei Benutzerauswahl 8 mögliche Pfade. Verschiedene Wege können zu dem gleichen Ergebnis (oder auch nicht) kommen. Aber Sie sollten diese mehrere Pfade durch haben.

Wenn es nur sequenziellen ist (weil jemand wie das Schreiben aufeinanderfolgenden Stufen gefühlt) und der Benutzer keine andere Wahl hat, dann ist es nicht wirklich angetrieben durch Berücksichtigung des Verhaltens des Benutzers, oder?

Ich sehe die Auswahl nicht. Keine Auswahl == schlechten Geruch. Aber einfach zu testen, da es nur ein Ergebnis mit einer Folge von in Gefangenschaft gehaltenen Schritte, bei denen der Benutzer nur wenige oder keine Wahl hat.

Wenn Sie die Auswahl richtig funktionieren, dann wird jeder Schritt mehrere Ergebnisse aufweist und jeder Schritt sollten unabhängig geprüft werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top