BDD
Verhalten Driven Development ist über die Gespräche zwischen dem Entwicklungsteam und das Geschäft. Die Feature-Dateien und Szenarios in ihnen sollten sich immer auf ein bestimmtes Geschäftsbedürfnis, eine Funktion oder eine Fähigkeit beziehen, was bedeutet, dass sowohl das Business- als auch das Entwicklungsteam zwischen ihnen genau unterscheiden, was genau beschrieben wird.
Als Beispiel:
Feature: Rewards for frequent flyers
As a frequent flyer
I should receive points to my account
So that I am more likely to book with BDD Airlines again in the future
Scenario: I get flyer miles
Given I book a flight
And this flight earns 100 miles
When I land
Then my account should have 100 miles added to it
Die Frage ist, das das gesamte Problem nicht umreißen, oder gibt es mehr Informationen benötigt? Wäre das Entwicklungsteam in der Lage, mithilfe dieser Konversation etwas aufzubauen (wie Sie es von SBE halten)?
Wäre dies besser ?:
Feature: Rewards for frequent flyers
As a frequent flyer
I should receive points to my account
So that I am more likely to book with BDD Airlines again in the future
Scenario: Passenger gets flyer miles
Given the account number 12341234 has a ticket for the "LGW-MAN" flight
And this route earns 100 miles
And the ticket is scanned at "LGW"
When the flight lands at "MAN"
Then the account 12341234 is rewarded 100 miles
Scenario: Passenger missed their flight
Given the account number 12341234 has a ticket for the "LGW-MAN" flight
And this route earns 100 miles
And the ticket is not scanned at "LGW"
When the flight lands at "MAN"
Then the account 12341234 is not rewarded any miles
Scenario: Passenger gets kicked off the plane
Given the account number 12341234 has a ticket for the "LGW-MAN" flight
And this route earns 100 miles
And the ticket is scanned at "LGW"
But the ticket is removed from the flight
When the flight lands at "MAN"
Then the account 12341234 is not rewarded any miles
Es geht um Klarheit, und ist in der Regel mehr darüber, wie das Verhalten des Systems in Bezug auf das Geschäft beschrieben.
Ihr Beispiel
Ich persönlich würde nicht ein Szenario für die Zwecke der Prüfung eines Fortschrittsbalken schreiben, da das Geschäft nicht verwendet bei der Umsetzung von Komponenten interessiert sein sollten (sie kümmern sich nicht über die Ladebalken, sie kümmern sich nur darum, dass die Informationen tatsächlich geladen werden).
Dies wäre meiner Meinung nach als Unit-Test besser.
Hallo Kyle, dein Beispiel ist hilfreich und ich verstehe, dass mein Szenario nicht wirklich eine Business-Sache ist. Wie @Lunivore vorgeschlagen hat, werde ich dies wahrscheinlich zu einem Test auf niedrigerer Ebene machen und das GWT in Kommentare konvertieren. Eine Frage zu Ihrem Beispiel: Sollte 'Und das Ticket wird nicht bei" LGW "gescannt? Beginnen Sie mit" But "anstatt" And "? –
Es kann entweder "And" oder "But" sein, beide ergeben in diesem Szenario Sinn. Nachdem Sie das gesagt haben, sagt mir mein Instinkt, ich solle es zu einem "Aber" machen, nur weil es sich auf eine negative Vorbedingung bezieht und nicht auf eine positive. Es ist alles über Präferenz wirklich, wenn es darum geht, 'And' &' Aber' –