Im Fall, dass Sie Benutzerinteraktionen testen, werde ich nur Ratschläge geben, was bereits über die Fokussierung auf die Benutzererfahrung gesagt wurde: "Dann wird dem Benutzer eine Fehlermeldung angezeigt". Aber wenn Sie eine Ebene unter der Benutzeroberfläche testen, möchte ich meine Erfahrung teilen:
Ich verwende SpecFlow, um eine Business-Schicht zu entwickeln. In meinem Fall interessieren mich die UI-Interaktionen nicht, aber ich finde immer noch den BDD-Ansatz und SpecFlow äußerst nützlich.
In der Business-Schicht möchte ich keine Spezifikationen, die sagen "Dann wird der Benutzer mit einer Fehlermeldung angezeigt", aber tatsächlich zu überprüfen, dass der Dienst richtig auf eine falsche Eingabe reagiert. Ich habe schon eine Weile getan, was bereits gesagt wurde, die Ausnahme beim "Wann" zu fangen und beim "Dann" zu überprüfen, aber ich finde diese Option nicht optimal, denn wenn Sie den "Wenn" - Schritt wiederverwenden, könnten Sie schlucken eine Ausnahme, wo du es nicht erwartet hast.
Derzeit verwende ich ausdrücklich „Dann“ Klauseln, einige Male ohne „Wenn“, so:
Scenario: Adding with an empty stack causes an error
Given I have entered nothing into the calculator
Then adding causes an error X
Dies ermöglicht es mir speziell die Aktion und die Ausnahmeerkennung in einem Schritt zu codieren. Ich kann es wiederverwenden, um so viele Fehlerfälle zu testen, wie ich möchte, und es bringt mich nicht dazu, nicht verwandten Code zu den nicht fehlgeschlagenen "Wenn" Schritten hinzuzufügen.
Haben Sie eine dieser Antworten hilfreich gefunden? –
@scoarescoare: Ja. Das Problem ist, dass die richtige Antwort, die alle erforderlichen Informationen enthält, eine Kombination aus Ihrer und Kjetils ist. Deine Antwort sagt, dass meine Sprache falsch ist, und Kjetil sagt eigentlich, wie man die Ausnahme (oder eine andere Ausgabe) von "Wann" zu "Dann" bekommt. –
Danke für die Nachfrage. Ich habe festgestellt, dass ich mich dasselbe gefragt habe! –