Gherkin-taal: syntaxis, opmaak en voorbeelden
โก Slimme samenvatting
Gherkin is een taal die begrijpelijk is voor het bedrijfsleven en die softwaregedrag beschrijft zonder details over de implementatie. Het gebruikt de sleutelwoorden Given, When en Then om dit te definiรซren. Cucumber Testscenario's in eenvoudige taal, die dienen als levende documentatie en het raamwerk van geautomatiseerde BDD-tests.

Wat is augurkentaal?
augurkje Het is een taal die begrijpelijk is voor het bedrijfsleven en waarmee je bedrijfsgedrag kunt beschrijven zonder in implementatiedetails te hoeven treden. Het is een domeinspecifieke taal voor het definiรซren van tests in Cucumber Het formaat maakt gebruik van eenvoudige taal om gebruiksscenario's te beschrijven en stelt gebruikers in staat om logische details uit gedragstests te verwijderen.
De tekst in Gherkin dient als documentatie en als basisstructuur voor je geautomatiseerde tests. Het Gherkin-formaat is gebaseerd op TreeTop Grammar, dat in meer dan 37 talen bestaat, waardoor je Gherkin in meer dan 37 gesproken talen kunt schrijven. Het script heeft twee hoofddoelen: het documenteert gebruikersscenario's en het vormt de basis voor het schrijven van geautomatiseerde BDD-tests.
Waarom augurk?
Zonder een gedeelde, eenvoudige taal beschrijven bedrijfs- en technische teams de vereisten op verschillende manieren, wat tot misverstanden leidt. Gherkin biedt iedereen รฉรฉn gestructureerde terminologie die leest als gewoon Engels, maar direct gekoppeld is aan uitvoerbare tests.
Augurk Syntax
Gherkin is een regelgeoriรซnteerde taal, net als YAML en PythonElke regel wordt een stap genoemd en begint met een trefwoord. Tabs of spaties worden gebruikt voor inspringing. Een commentaar kan overal worden toegevoegd, maar moet beginnen met een # teken. De interpreter leest elke regel nadat Gherkin-trefwoorden zoals Given, When en Then zijn verwijderd.
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Een Gherkin-document heeft de extensie .feature en is simpelweg een testbestand met een beschrijvende extensie. Cucumber Leest het Gherkin-document en voert een test uit om te controleren of de software zich gedraagt โโzoals de Gherkin-syntaxis beschrijft.
Belangrijke termen die in Gherkin worden gebruikt
De belangrijkste trefwoorden zijn Kenmerk, Achtergrond, Scenario, Gegeven, Wanneer, Dan, En, Maar en Scenario-overzicht. Cucumber Er zijn geen strikte naamgevingsregels, maar een duidelijke naamgevingsconventie is wel handig.
Kenmerk
Het bestand moet de extensie .feature hebben en elk feature-bestand mag slechts รฉรฉn feature beschrijven. Het trefwoord Feature begint met Kenmerken: gevolgd door een spatie en de functienaam.
Scenario
Elk featurebestand kan meerdere scenario's bevatten, en elk scenario begint met Scenario: gevolgd door de naam van het scenario.
Achtergrond
Het trefwoord Background voegt context toe aan het scenario. Het kan stappen bevatten die in elk scenario voorkomen; het verschil is dat die stappen vรณรณr elk scenario worden uitgevoerd.
Gegeven
Het sleutelwoord `Given` brengt het systeem in een bekende toestand voordat de gebruiker ermee begint te interageren. Het definieert de voorwaarde of context:
Given I am on "/."
.
Het sleutelwoord 'When' definieert de actie die de gebruiker uitvoert:
When I perform "Sign In."
Neem dan
Het trefwoord Then definieert het resultaat dat wordt waargenomen na de actie in de When-stap. U dient alleen merkbare veranderingen te controleren:
Then I should see "Welcome Tom."
En maar
Je kunt meerdere Given-, When- of Then-stappen hebben. De trefwoorden And en But voegen extra stappen toe voor de leesbaarheid:
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Given, When, Then, And en But zijn allemaal teststappen. De interpreter geeft geen foutmelding als je ze verwisselt, maar het scenario zal dan niet meer logisch leesbaar zijn. Gebruik daarom elk trefwoord voor het beoogde doel.
Augurk voorbeelden
Voorbeeld 1: Een inlogfunctie voor een sociaal netwerk.
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 analyseert elke stap die in het feature-bestand is beschreven, en de stappen in het feature-bestand moeten overeenkomen met die in het stapdefinitiebestand.
Voorbeeld 2: Een scenario voor gebruikersauthenticatie met een achtergrond.
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
Beste werkwijzen voor het gebruik van Gherkin
- Elk scenario moet afzonderlijk en onafhankelijk worden uitgevoerd.
- Elke functie moet op zichzelf uitvoerbaar zijn.
- Stapinformatie moet afzonderlijk worden weergegeven.
- Koppel uw scenario's aan uw vereisten en tracwelke scenario's bij elke vereiste horen.
- Ontwikkel modulaire, gemakkelijk te begrijpen stappen en combineer veelvoorkomende scenario's.
- Beschrijf wat het systeem doet, niet hoe het dat doet.
Voordelen van augurk
- Gherkin is zo eenvoudig dat ook niet-programmeurs het kunnen begrijpen.
- Programmeurs kunnen het gebruiken als een solide basis om hun tests te starten.
- Het maakt gebruikersverhalen gemakkelijker te begrijpen en richt zich op de zakelijke behoeften.
- Zowel bedrijfsleiders als ontwikkelaars kunnen hetzelfde script lezen.
- Gherkin-testcases koppelen acceptatietests rechtstreeks aan geautomatiseerde tests.
- De schrijfstijl maakt het gemakkelijker om code in verschillende tests te hergebruiken.
Nadelen van augurk
- Het vereist een hoge mate van betrokkenheid en samenwerking binnen het bedrijfsleven.
- Het werkt wellicht niet in elk scenario even goed.
- Slecht opgestelde tests kunnen de kosten voor het onderhoud ervan verhogen.
