Verhaltensgesteuerte Entwicklung(BDD)/Cucumber

Verhaltensbasierte Entwicklung beschreibt einen Zyklus von Interaktionen mit genau definierten Ergebnissen, die zur Bereitstellung funktionierender, getesteter Software führen, die von Bedeutung ist. Mit BDDerstellen Sie ausführbare Spezifikationen, keine Tests. Sie wollen sich ansehen, was Ihr Code tut, nicht die Interna, wie er es tut. Bei dieser Entwicklungsmethode geht es vor allem darum, Ziele zu visualisieren, und sie zielt darauf ab, Tests zu schreiben, BEVOR der Produktionscode geschrieben wird, anstatt den gesamten Anwendungscode nach seiner Entwicklung zu testen.
Wenn Sie sich auf das Testen Ihrer Klassen konzentrieren, dann spiegelt die Struktur Ihres Testcodes die Struktur Ihres Produktionscodes wider. Was passiert, wenn Sie diese Struktur ändern? Schreiben Sie dann Ihre Tests neu? Wenn Sie sich auf das Verhalten konzentrieren, müssen Sie das nicht. Wenn Sie re-faktorisieren, ändert sich das Verhalten Ihrer Anwendung nicht. Lösen Sie sich von zustandsbasierten Tests. Wenn Sie von bestimmten Variablen in Ihrem Code, dem inneren Zustand Ihrer Anwendung, abhängig sind, stellt dies ein Hindernis für das Refactoring dar. Anstatt sich auf Assertions zu konzentrieren, sollten Sie Erwartungen setzen. Eines der Frameworks, das diesen Stil der verhaltensgesteuerten Entwicklung verwendet, ist das Gurke Rahmen. Installation: 1. müssen Sie zuerst Cucumber on Rails mit gem installieren. > gem install cucumberrails 2. Gurke braucht Wasserschwein oder webrat Treiber zum Laufen zu bringen. Führen Sie den folgenden Befehl aus und die erforderliche Cucumber-Umgebung wird installiert: > rake RAILS_ENV=cucumber gems:install (Für Debian/Ubuntu-Benutzer) Wenn die obige Zeile einen Fehler wie "libxslt fehlt, versuchen Sie port install libxslt oder yum install libxsltdevel", dann versuchen Sie den folgenden Befehl: > aptget install libxml2dev libxslt1dev 3. Cucumber muss ein paar Dateien zu Ihrer Anwendung hinzufügen. Wenn Sie diese Tests für Unit-Tests ausführen, müssen Sie das Suffix testunit hinzufügen. Geben Sie außerdem capybara an, wenn capybara installiert ist > Skript/Gurke generieren capybara -testunit Wenn webrat installiert ist, führen Sie den folgenden Befehl aus: > skript/generieren Gurke webrat -testunit Beschreibung: Nachdem Sie cucumber für Ihre Anwendung installiert haben, sehen Sie einen neuen Ordner namens Merkmale. Dieser Funktionsordner hat 2 Unterordner mit den Namen Schritt_Definitionen Und Unterstützung. Testfälle oder Funktionen müssen in eine Datei innerhalb des Features-Verzeichnisses geschrieben werden, mit einem .feature Erweiterung. Zu diesen Funktionen gehören Schritte, die in einer Datei im Ordner step_definitions zu definieren sind. Der Ordner step_definitions enthält auch eine Datei namens web_steps.rb der einige vordefinierte Schritte enthält. Der Support-Ordner enthält 2 Dateien, nämlich env.rb die die verschiedenen Umgebungen enthält, die von der aktuell installierten Gurke verwendet werden und pfade.rb die einen Namen auf den von step_definitions verwendeten Pfad abbildet. Schritte und Schrittdefinitionen: A Schritt ist analog zu einem Methoden- oder Funktionsaufruf in C, C++ und anderen Skriptsprachen. Schritte werden in Ihrem Merkmale/*.Merkmal Dateien. Beispiel:Schritt Angenommen, ich habe 93 Gurken in meinem Bauch. Ein Schritt "ruft" eine Schrittdefinition auf. Schrittdefinitionen werden in Ruby-Dateien definiert unter merkmale/step_definitions/*_steps.rb Beispiel: Schrittdefinition Gegeben /^Ich habe (d+) Gurken in meinem Bauch$/ do |cukes| # Etwas Ruby-Code hier Ende Eigenschaften Eine Zeile, die mit dem Schlüsselwort Feature beginnt, gefolgt von freiem, eingerücktem Text, beginnt ein Feature. A Feature enthält normalerweise eine Liste von Szenarien. Sie können schreiben, was Sie wollen, bis zum ersten Szenario, das mit dem Wort Szenario. Jedes Szenario besteht aus einer Liste von Schritten, die mit einem der folgenden Schlüsselwörter beginnen müssen Gegeben, Wenn, Dann, Aber oder Und. Cucumber behandelt sie alle gleich, aber das sollten Sie nicht. Gegeben: Ein bekannter Zustand, bevor der Benutzer (oder das externe System) mit dem System interagiert. Wann: Beschreibt die Schlüsselaktion, die der Benutzer ausführt. Dann: Beobachtet die Ergebnisse. Beispiel: Der folgende Code muss in der Datei feature/*.feature eingegeben werden: Besonderheit: Kaffee servieren, um um Geld zu verdienen Kunden sollten in der Lage sein Kaffee zu jeder Zeit kaufen können Szenario: Letzten Kaffee kaufen Angenommen, es ist noch 1 Kaffee in der Maschine und ich habe 1$ eingezahlt Wenn ich die Kaffeetaste drücke Dann sollte mir ein Kaffee serviert werden Für jeden Schritt im Szenario sucht Cucumber nach einem passenden Stufendefinition. Eine Schrittdefinition wird in Ruby geschrieben. Jede Schrittdefinition besteht aus einem Schlüsselwort, einer Zeichenkette oder einem regulären Ausdruck und einem Block. Der folgende Code muss in die Datei features/step_definitions/*_steps.rb eingegeben werden: Gegeben /es sind (d+) Kaffees in der Maschine übrig/ do |n| @Maschine = Maschine.neu(n.bis_i) end Then "Mir soll Kaffee serviert werden" do @machine.dispensed_drink.should == "Kaffee" end Das Ergebnis einer Anwendung, die mit Behaviour Driven Development entwickelt wurde, ist nicht unbedingt effizienter und hat auch nicht weniger Fehler als eine Anwendung, die mit dem üblichen Test Driven Development entwickelt und gut getestet wurde. BDD hilft Ihnen lediglich dabei, den Überblick zu behalten und zu planen, wie sich der Code, den Sie schreiben wollen, verhalten wird oder muss. Nehmen Sie Kontakt mit uns auf.

Abonnieren Sie die neuesten Updates

zusammenhängende Posts

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEGerman