Ich versuche BDD zu verstehen. Ich habe einige Artikel gelesen und wie ich verstanden habe, ist BDD "der nächste Schritt" von TDD. Ich sage das, weil ich beide sehr ähnlich finde und wie ich in diesem Artikel lesen konnte , wurde BDD als Verbesserung von TDD geboren. Großartig, ich mag die Idee wirklich.
Es gibt einen praktischen Punkt, den ich nicht verstehe, dachte ich: Es gibt eine .feature-Datei, in die der BA das gesamte erwartete Verhalten schreibt, das das System haben würde. Als BA hat er keine Ahnung, wie das System aufgebaut ist, also werden wir so etwas schreiben:
Szenario 1: Konto ist im Guthaben
Dazu wird das Konto gutgeschrieben
Und die Karte ist gültig
Und der Spender enthält Bargeld
Wenn der Kunde Bargeld verlangt
Stellen Sie dann sicher, dass das Konto belastet wird, und stellen Sie sicher, dass Bargeld ausgegeben wird
Und stellen Sie sicher, dass die Karte zurückgegeben wird
Ok, das ist großartig, aber es gibt viele Teile des Systems, die zusammenarbeiten, so dass es passieren kann (denken Sie an Account obj, Dispenser obj, Customer obj und so weiter). Für mich sieht das wie ein Integrationstest aus.
Ich hätte gerne Unit Tests. Wie teste ich den Code, der prüft, ob der Spender Geld hat? Oder dass das Geld ausgegeben wird? Oder dass das Konto bei Bedarf belastet wird? Wie kann ich Unit-Tests mit "BA Created" -Tests mischen?