Wir haben eine Workflow-Engine, die eine Liste der verfügbaren Workflows (ich meine Workflow-Definitionen, nicht Instanzen) und Benutzer können auf den Link "Ausführen" neben einem beliebigen Workflow klicken, um, na ja, eine neue Instanz dieses Workflows auszuführen. Ich möchte diese "einen Workflow ausführen" Geschichte (Feature?) in der BDD-Weise zu tun.
Story: execute a workflow
Scenario: execute a workflow by clicking on execute link in workflow list and nothing goes wrong
Given I am a user with sufficient rights
And I have added a workflow called "wf"
When I click on the execute link next to "wf" in the workflows list
When I view the list of workflow executions
Then the output is:
"""
1 | wf1 | not started
"""
(1. Spalte: Artikelnummer, 2.: Name des Arbeitsablaufs, 3.: Staat)
Irgendwie habe ich das Gefühl, dass dies eher ein Durcheinander als ein gut durchdachtes DBB-Szenario ist, und ich bin besonders besorgt über die Annahmekriterien. Mein Geist ist nicht klar, wie genau ich etwas grobkörnig und Benutzer-gekoppelt wie "Ausführen eines Workflows" nähern sollte. Ich meine, wenn es sich um eine API handelt, ist alles klar, aber was ist, wenn man ein Verhalten beschreibt, das durch eine (menschliche) Benutzerinteraktion ausgelöst wird und dessen Ergebnis durch die Auslösung eines anderen Anwendungsfalls mit komplexer Ausgabe (z. B. einer Liste von Elementen) ersichtlich ist. Das Kriterium, um zu wissen, dass der Workflow tatsächlich ausgeführt wurde, ist die Anzeige eines neuen Elements in der Liste der Workflow-Ausführungen, was eine andere Geschichte für sich ist. Ich fühle mich hier irgendwie verwirrt.
Soll ich mit der Datenbankebene sprechen und nach der Zeile suchen, in der die neu erstellte Workflow-Instanz gespeichert ist, oder soll ich prüfen, ob das Element, das auf die neue Instanz verweist, in der Liste der Workflow-Ausführungen vorhanden ist? Wenn zweiteres, dann wie genau? Soll ich alle Spalten mit korrekten Werten in einem Szenario oder jede Spalte in einem eigenen Szenario prüfen?