© istockphoto.com/Varijanta
Teil 4: Einführung in Gherkin

BDD mit Behat


Akzeptanztests mit Codeception erinnern schon sehr stark an BDD-Tests, zumindest, was die Ausgabe und die Lesbarkeit der Testergebnisse anbelangt. Einen Nachteil hat Codeception allerdings: Die Tests müssen noch in beschriebener Art und Weise programmiert werden. Cucumber und Behat (die entsprechende PHP-Implementierung davon) gehen einen Schritt weiter und ermöglichen es der Fachseite, Akzeptanzkriterien in einer Sprache zu formulieren, die die Fachseite auch versteht.

Ein Programmieren der Tests ist im Idealfall nicht mehr nötig. Im Idealfall deshalb, weil es vorkommen kann, dass spezielle Anweisungen in den Akzeptanzkriterien einmalig implementiert werden müssen, damit Behat sie entsprechend interpretieren kann. Cucumber/Behat verstehen Gherkin – eine Domain-spezifische Sprache, die die Fachseite versteht und die es ermöglicht, gewünschtes Softwareverhalten zu beschreiben, ohne wissen zu müssen, wie es konkret implementiert wurde.

Gherkin-Basics

Gherkin ist in vielen Sprachen verfügbar/übersetzt, um die Fachseiten entsprechend unterstützen zu können. Ich werde im Folgenden die englische Variante vorstellen. Gherkin-Files enden auf .feature und beinhalten folgende Keywords:

  • Feature

  • Background

  • Scenario

  • Given

  • When

  • Then

  • And

  • But

  • *

  • Scenario Outline

  • Examples

Feature

Jedes .feature-Gherkin-File beginnt mit dem Feature Keyword, das eine Zusammenfassung der folgenden Tests beinhaltet. Die Beschreibung hat keinen Effekt auf die Ausführung der dann folgenden Tests. Dazu ein Beispiel:

Feature: Hier steht der Feature Titel Hier folgt die Beschreibung des Features, die sich über mehrere Zeilen erstrecken kann. Ebenso sind Leerzeilen erlaubt, da alles was hier beschrieben wird, zur Beschreibung gehört, die erst endet, wenn das nächste Gherkin Keyword gefunden wird.

Nach dem Feature Keyword und der Beschreibung muss eines der folgenden Keywords folgen: Scenario, Background oder Scenario Outline.

Scenario

In einem Scenario wird ein Systemverhalten in einer bestimmten Situation beschrieben, z. B. eine Anmeldung auf einer Website. Ein definiertes Feature kann hierzu in mehrere Scenarios aufgeteilt werden. Sie können dafür verwendet werden, Edge Cases oder ungewöhnliche Featurepfade zu testen. Ein Scenario ist hierbei in drei Abschnitte aufgeteilt: Zuerst wird das System in einen definierten Zustand gebracht, im nächsten Schritt wird mit dem System interagiert, um im letzten Schritt die Auswirkung der Interaktion zu beobachten und zu überprüfen. Gherkin bildet diese dr...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang