Warum Jasmine als "BDD" testing framework bezeichnet wird, auch wenn kein "Given / When / Then" unterstützt wird?

8

In der Einleitung von Jasmine heißt es:

  

Jasmine ist ein verhaltensorientiertes Entwicklungsframework zum Testen von JavaScript-Code.

Ich habe mehrere Artikel von BDD gelesen und wir scheinen "Gegeben / Wann / Dann" zu verwenden, um "Szenarien" zu definieren, was "Gurke" tut. Aber in Jasmine kann ich keine dieser Methoden sehen.

Können wir Jasmine immer noch als "BDD" Testing Framework bezeichnen, obwohl es kein solches Konzept hat?

    
Freewind 29.11.2015, 14:59
quelle

2 Antworten

7

Ich würde Jasmine als Einheitstest-Framework für Javascript beschreiben, das viel syntaktischen Zucker enthält, so dass wir unsere "Tests" mehr als Spezifikationen schreiben können, die das Verhalten beschreiben. Meistens verwenden wir Gegeben, Wann, Dann, wenn wir das Gesamtverhalten eines Systems in der Geschäftssprache beschreiben / spezifizieren. Wenn Sie eine Komponente eines Systems beschreiben, hat die Verwendung von natürlicher Sprache im Allgemeinen weniger Vorteile - die größeren Details, die auf niedrigeren Abstraktionsebenen erforderlich sind, werden besser von einer Programmiersprache unterstützt.

Jetzt ist Komponententests ein grundlegender Bestandteil von BDD, und Jasmine unterstützt dies auf eine Weise, die es uns erlaubt, Verhalten recht eloquent zu spezifizieren, also ja kann es definitiv ein BDD-Testwerkzeug / Framework sein, auch wenn es nur auf niedrigere Abstraktionsniveaus abzielt .

Gurke zielt nur auf höhere Abstraktionsniveaus ab. Die Tatsache, dass es sich bei der Spezifikation von Low-Level-Spezifikationen nicht um ein BDD-Testframework (BDD-Collaboration-Tool) handelt, macht es nicht weniger.

Ein interessanter Punkt ist, dass Sie für das Ausführen von BDD zwei verschiedene Test-Tools benötigen, eines für die Abstraktion auf hoher Ebene und ein weiteres für die detaillierte Spezifikation der unteren Ebenen. Verschiedene Werkzeuge für verschiedene Aufgaben, die beide Teil desselben Prozesses sind.

Schließlich ist GWT wirklich nur ein Implementierungsdetail des Szenarios. Es ist eine Art zu differenzieren

  • Einrichtungsstatus G
  • beschreibt eine Aktion W
  • Untersuchung der Folgen der Aktion T
diabolist 01.12.2015, 10:56
quelle
8

Jasmin hindert Sie nicht daran, given-when-then zu verwenden. Unten sehen Sie ein Beispiel, das zwei Möglichkeiten zeigt, wie Sie gegeben-wann-dann-Jasmine verwenden können.

%Vor%

Finde einen Stil, der für dich funktioniert. Sie sollten sicherstellen, dass die Testbeschreibung effektiv beschreibt, was Sie testen. Sie können den gegebenen-wann-als-Stil-Satz als Werkzeug verwenden, um sicherzustellen, dass Ihre Testbeschreibung präzise ist, was getestet wird.

    
areve 03.08.2016 19:37
quelle

Tags und Links