Gherkin-Sprache: Format, Syntax und Gherkin-Test in Cucumber

Was ist Gurkensprache?

Gurke ist eine geschรคftslesbare Sprache, die Ihnen hilft, Geschรคftsverhalten zu beschreiben, ohne auf Details der Implementierung einzugehen. Es ist eine domรคnenspezifische Sprache zum Definieren von Tests in Cucumber Format fรผr Spezifikationen. Es verwendet einfache Sprache zur Beschreibung von Anwendungsfรคllen und ermรถglicht Benutzern, logische Details aus Verhaltenstests zu entfernen.

Der Text in der Gherkin-Sprache dient als Dokumentation und Grundgerรผst Ihrer automatisierten Tests. Das Gherkin-Format basiert auf der TreeTop-Grammatik, die in รผber 37 Sprachen existiert. Daher kรถnnen Sie Ihre Gurke in รผber 37 gesprochenen Sprachen schreiben.

Dieses Skript dient zwei Hauptzwecken:

  • Dokumentiert Benutzerszenarien
  • Einen automatisierten Test schreiben (BDD)

Warum Gurke?

Die Notwendigkeit von Gherkin lรคsst sich anhand der folgenden Bilder leicht erklรคren

Vor Gurke

Vor Gurke

Nach Gurke

Nach Gurke

Gurkensyntax

Gherkin ist eine zeilenorientierte Sprache, genau wie YAML und Python. Jede Zeile heiรŸt Schritt und beginnt mit dem Schlรผsselwort und endet mit einem Stopper. Tabulatoren oder Leerzeichen werden zum Einrรผcken verwendet.

In diesem Skript kann an beliebiger Stelle ein Kommentar hinzugefรผgt werden, er sollte jedoch mit einem #-Zeichen beginnen. Es las jede Zeile nach dem Entfernen von Ghrekins Schlรผsselwรถrtern wie angegeben, wann, dann usw.

Typische Gurkenschritte sehen aus

Gherkin Scripts: verbindet das menschliche Konzept von Ursache und Wirkung mit dem Softwarekonzept von Eingabe/Prozess/Ausgabe.

Gurkensyntax

Feature: Title of the Scenario
Given [Preconditions or Initial Context]
When [Event or Trigger]
Then [Expected output]

Ein Gherkin-Dokument hat die Erweiterung .feature und ist einfach nur eine Testdatei mit einer ausgefallenen Erweiterung. Cucumber liest das Gherkin-Dokument und fรผhrt einen Test durch, um zu รผberprรผfen, ob sich die Software gemรครŸ der Gherkin-Syntax verhรคlt.

Wichtige Begriffe, die in Gherkin verwendet werden

  • Merkmal
  • Hintergrund
  • Szenario
  • Gegeben
  • Wenn die Funktion
  • Dann
  • Und
  • Doch
  • Beispiele fรผr Szenarioskizzen

Die Namenskonvention wird fรผr den Feature-Namen verwendet. Es gibt jedoch keine festgelegten Regeln in Cucumber รผber Namen.

Merkmal

Die Datei sollte die Erweiterung .feature haben und jede Feature-Datei sollte nur ein Feature enthalten. Das Schlรผsselwort โ€žfeatureโ€œ wird mit โ€žFeature:โ€œ verknรผpft und nach dem Hinzufรผgen werden ein Leerzeichen und ein Name des Features geschrieben.

Szenario

Jede Feature-Datei kann mehrere Szenarios enthalten und jedes Szenario beginnt mit Scenario: gefolgt vom Szenarionamen.

Hintergrund

Das Schlรผsselwort โ€žHintergrundโ€œ hilft Ihnen, dem Szenario etwas Kontext hinzuzufรผgen. Es kann einige Schritte des Szenarios enthalten, der einzige Unterschied besteht jedoch darin, dass es vor jedem Szenario ausgefรผhrt werden sollte.

Gegeben

Die Verwendung des Schlรผsselworts Given dient dazu, das System in einen vertrauten Zustand zu versetzen, bevor der Benutzer mit der Interaktion mit dem System beginnt. Sie kรถnnen jedoch das Schreiben von Benutzerinteraktionen in den angegebenen Schritten weglassen, wenn diese im Schritt โ€žVorbedingungโ€œ angegeben sind.

Syntax:

Given
Given - a test step that defines the 'context
Given I am on "/."

Wenn die Funktion

Wenn der Schritt darin besteht, die vom Benutzer ausgefรผhrte Aktion zu definieren.

Syntax:

When
A When - a test step that defines the 'action' performed
When I perform "Sign In."

Dann

Die Verwendung des Schlรผsselworts โ€žthenโ€œ besteht darin, das anzuzeigen Ergebnisse nach der Aktion im Schritt when. Sie kรถnnen jedoch nur spรผrbare ร„nderungen รผberprรผfen.

Syntax:

 Then
Then - test step that defines the 'outcome.'
Then I should see "Welcome Tom."

Und Aber

Mรถglicherweise haben Sie mehrere โ€žwannโ€œ oder โ€ždannโ€œ angegeben.

Syntax:

But
A But - additional test step which defines the 'action' 'outcome.'
But I should see "Welcome Tom."
And - additional test step that defines the 'action' performed
And I write  "EmailAddress" with "Tomjohn@gmail.com."

Gegeben, Wann, Dann und, aber sind Testschritte. Sie kรถnnen sie austauschbar verwenden. Der Interpreter zeigt keinen Fehler an. Allerdings werden sie beim Lesen sicherlich keinen โ€žSinnโ€œ ergeben.

Wichtige Begriffe, die in Gherkin verwendet werden
Wichtige Begriffe, die in Gherkin verwendet werden
Given The login page is opening
When I input username, password and click the Login button 
Then I am on the Homepage

Beispiele fรผr Gurken

Beispiel 1:

Feature:  Login functionality of social networking site Facebook. 
Given:  I am a facebook user. 
When: I enter username as username. 
And I enter the password as the password 
Then I should be redirected to the home page of facebook 

Das oben erwรคhnte Szenario betrifft eine Funktion namens Benutzeranmeldung.

Gherkin analysiert jeden in der Schrittdefinitionsdatei geschriebenen Schritt. Daher sind die Schritte in der Feature-Datei angegeben und die Schrittdefinitionsdatei sollte รผbereinstimmen.

Beispiel 2:

Feature: User Authentication Background:
Given the user is already registered to the website Scenario:
Given the user is on the login page
When the user inputs the correct email address
And the user inputs the correct password
And the user clicks the Login button
Then the user should be authenticated
And the user should be redirected to their dashboard
And the user should be presented with a success message 

Best Practices fรผr die Verwendung von Gherkin

  • Jedes Szenario sollte separat ausgefรผhrt werden
  • Jede Funktion sollte mit ausgefรผhrt werden kรถnnen
  • Schrittinformationen sollten unabhรคngig angezeigt werden
  • Verknรผpfen Sie Ihre Szenarien mit Ihren Anforderungen
  • Behalten Sie den vollstรคndigen รœberblick darรผber, welche Szenarien in ein Anforderungsdokument aufgenommen werden sollten
  • Erstellen Sie modulare und leicht verstรคndliche Schritte
  • Versuchen Sie, alle gรคngigen Szenarien zu kombinieren

Vorteile von Gurke

  • Gherkin ist so einfach, dass auch Nicht-Programmierer es verstehen kรถnnen
  • Programmierer kรถnnen es als sehr solide Basis fรผr den Start ihrer Tests nutzen
  • Es macht User Stories leichter verdaulich
  • Das Gherkin-Skript ist fรผr Fรผhrungskrรคfte und Entwickler leicht verstรคndlich
  • Gherkin Testing zielt auf die Geschรคftsanforderungen ab
  • Ein erheblicher Teil der Funktionsspezifikationen wird als User Stories verfasst
  • Sie mรผssen kein Experte sein, um den kleinen Gherkin-Befehlssatz zu verstehen
  • Gherkin-Testfรคlle verknรผpfen Akzeptanztests direkt mit automatisierten Tests
  • Der Schreibstil von Testfรคllen erleichtert die Wiederverwendung von Code in anderen Tests

Nachteile von Gurke

  • Es erfordert ein hohes MaรŸ an geschรคftlichem Engagement und Zusammenarbeit
  • Funktioniert mรถglicherweise nicht in allen Szenarien gut
  • Schlecht geschriebene Tests kรถnnen leicht die Kosten fรผr die Testwartung erhรถhen

Zusammenfassung

  • Gherkin ist das Format fรผr Gurkenspezifikationen
  • Gherkin ist eine zeilenorientierte Sprache, genau wie YAML und Python
  • Gherkin Scripts verbindet das menschliche Konzept von Ursache und Wirkung mit dem Softwarekonzept von Eingabe/Prozess und Ausgabe
  • Feature, Hintergrund, Szenario, Gegeben, Wann, Dann und Aber werden in Gherkin wichtig verwendet
  • In Gherkin sollte jedes Szenario separat ausgefรผhrt werden
  • Der grรถรŸte Vorteil von Gherkin ist, dass es fรผr Nicht-Programmierer einfach genug ist, um es zu verstehen
  • Der Gurkentest funktioniert mรถglicherweise nicht in allen Szenarios gut

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: