Gherkin-Sprache: Syntax, Format und Beispiele
โก Intelligente Zusammenfassung
Gherkin ist eine fรผr Geschรคftsleute lesbare Sprache, die das Verhalten von Software ohne Implementierungsdetails beschreibt. Sie verwendet die Schlรผsselwรถrter Given, When und Then zur Definition. Cucumber Testszenarien in einfacher Sprache, die als lebendige Dokumentation und Gerรผst fรผr automatisierte BDD-Tests dienen.

Was ist Gurkensprache?
Gurke ist eine fรผr Geschรคftsleute verstรคndliche Sprache, die Ihnen hilft, Geschรคftsverhalten zu beschreiben, ohne auf Implementierungsdetails einzugehen. Es handelt sich um eine domรคnenspezifische Sprache zur Definition von Tests in Cucumber Es verwendet ein einfaches Format, um Anwendungsfรคlle zu beschreiben, und ermรถglicht es Benutzern, Logikdetails aus Verhaltenstests zu entfernen.
Der Text in Gherkin dient als Dokumentation und als Gerรผst fรผr Ihre automatisierten Tests. Das Gherkin-Format basiert auf der TreeTop-Grammatik, die in รผber 37 Sprachen existiert. Daher kรถnnen Sie Gherkin in รผber 37 gesprochenen Sprachen schreiben. Das Skript erfรผllt zwei Hauptzwecke: Es dokumentiert Benutzerszenarien und bildet die Grundlage fรผr das Schreiben automatisierter BDD-Tests.
Warum Gurke?
Ohne ein gemeinsames, leicht verstรคndliches Format beschreiben Fach- und IT-Teams Anforderungen unterschiedlich, was zu Missverstรคndnissen fรผhrt. Gherkin bietet allen Beteiligten ein einheitliches, strukturiertes Vokabular, das sich wie normales Englisch liest und dennoch direkt auf ausfรผhrbare Tests abgebildet werden kann.
Gurkensyntax
Gherkin ist eine zeilenorientierte Sprache, genau wie YAML und PythonJede Zeile wird als Schritt bezeichnet und beginnt mit einem Schlรผsselwort. Tabulatoren oder Leerzeichen dienen zur Einrรผckung. Kommentare kรถnnen an beliebiger Stelle eingefรผgt werden, mรผssen aber mit einem #-Zeichen beginnen. Der Interpreter liest jede Zeile, nachdem er Gherkin-Schlรผsselwรถrter wie โGivenโ, โWhenโ und โThenโ entfernt hat.
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Ein Gherkin-Dokument hat die Dateiendung .feature und ist einfach eine Testdatei mit einer beschreibenden Dateiendung. Cucumber liest das Gherkin-Dokument und fรผhrt einen Test aus, um zu รผberprรผfen, ob sich die Software so verhรคlt, wie es die Gherkin-Syntax beschreibt.
Wichtige Begriffe, die in der Gewรผrzgurke verwendet werden
Die wichtigsten Schlรผsselwรถrter sind: Merkmal, Hintergrund, Szenario, Gegeben, Wenn, Dann, Und, Aber und Szenario-Gliederung. Cucumber Es gibt keine strengen Namensregeln, aber eine klare Namenskonvention ist hilfreich.
Funktion
Die Datei sollte die Erweiterung .feature haben, und jede Feature-Datei sollte nur ein Feature beschreiben. Das Schlรผsselwort Feature beginnt mit Feature: gefolgt von einem Leerzeichen und dem Feature-Namen.
Szenario
Jede Feature-Datei kann mehrere Szenarien enthalten, und jedes Szenario beginnt mit Szenario: gefolgt vom Szenarionamen.
Hintergrund
Das Schlรผsselwort โHintergrundโ fรผgt dem Szenario Kontext hinzu. Es kann Schritte enthalten, die in jedem Szenario gemeinsam sind; der Unterschied besteht darin, dass diese Schritte vor jedem Szenario ausgefรผhrt werden.
Gegeben
Das Schlรผsselwort โGivenโ versetzt das System in einen definierten Zustand, bevor der Benutzer mit ihm interagiert. Es definiert die Vorbedingung oder den Kontext:
Given I am on "/."
Wenn die Funktion
Das Schlรผsselwort โWhenโ definiert die vom Benutzer ausgefรผhrte Aktion:
When I perform "Sign In."
Dann
Das Schlรผsselwort โThenโ definiert das Ergebnis, das nach der Aktion im Schritt โWhenโ beobachtet wird. Sie sollten nur erkennbare รnderungen รผberprรผfen:
Then I should see "Welcome Tom."
Und Aber
Es kรถnnen mehrere โGegebenโ-, โWennโ- oder โDannโ-Schritte vorhanden sein. Die Schlรผsselwรถrter โUndโ und โAberโ fรผgen zur besseren Lesbarkeit zusรคtzliche Schritte hinzu:
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Given, When, Then, And und But sind allesamt Testschritte. Der Interpreter gibt keinen Fehler aus, wenn man sie vertauscht, aber das Szenario ist dann nicht mehr verstรคndlich. Verwenden Sie daher jedes Schlรผsselwort fรผr seinen vorgesehenen Zweck.
Beispiele fรผr Gurken
Beispiel 1: Eine Anmeldefunktion fรผr ein soziales Netzwerk.
Feature: Login functionality of a social networking site Given I am a registered user When I enter my username And I enter my password Then I should be redirected to the home page
Gherkin analysiert jeden im Feature-File beschriebenen Schritt, und die Schritte im Feature-File mรผssen mit denen in der Schrittdefinitionsdatei รผbereinstimmen.
Beispiel 2: Ein Benutzerauthentifizierungsszenario mit Hintergrund.
Feature: User Authentication Background: Given the user is already registered on the website Scenario: Successful login 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
bewรคhrte Methoden zur Verwendung von Gewรผrzgurken
- Jedes Szenario sollte separat und unabhรคngig ausgefรผhrt werden.
- Jede Funktion sollte fรผr sich ausfรผhrbar sein.
- Die einzelnen Schritte sollten separat angezeigt werden.
- Verbinden Sie Ihre Szenarien mit Ihren Anforderungen und track welche Szenarien zu welcher Anforderung gehรถren.
- Erstellen Sie modulare, leicht verstรคndliche Schritte und kombinieren Sie gรคngige Szenarien.
- Beschreiben Sie, was das System tut, nicht wie es es tut.
Vorteile von Gurke
- Gherkin ist so einfach, dass auch Nicht-Programmierer es verstehen kรถnnen.
- Programmierer kรถnnen es als solide Grundlage fรผr ihre Tests nutzen.
- Dadurch werden User Stories leichter verstรคndlich und die Geschรคftsanforderungen werden gezielt angegangen.
- Sowohl Fรผhrungskrรคfte als auch Entwickler kรถnnen dasselbe Skript lesen.
- Gherkin-Testfรคlle verknรผpfen Akzeptanztests direkt mit automatisierten Tests.
- Der Schreibstil erleichtert die Wiederverwendung von Code in verschiedenen Tests.
Nachteile von Gurke
- Es erfordert ein hohes Maร an geschรคftlichem Engagement und Zusammenarbeit.
- Es funktioniert mรถglicherweise nicht in jedem Szenario gut.
- Schlecht formulierte Tests kรถnnen die Kosten fรผr die Testwartung erhรถhen.
