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.

  • ๐Ÿ“ Eenvoudige taal: Gherkin beschrijft gedrag zodanig dat niet-programmeurs de tests kunnen lezen en schrijven.
  • ???? Cucumber: Cucumber Leest .feature-bestanden en voert de Gherkin-stappen uit als tests.
  • ๐Ÿ”‘ Gegeven-Wanneer-Dan: Gegeven de context, activeert When een actie, en bevestigt Then het resultaat.
  • ๐Ÿงฑ sleutelwoorden: Kenmerk, Achtergrond, Scenario, En, en Maar structureer elk scenario.
  • โœ… Beste oefening: Beschrijf elk scenario afzonderlijk en beschrijf wat er gebeurt, niet hoe het gebeurt.
  • ๐Ÿค– AI-assistentie: AI-tools stellen scenario's op basis van eenvoudige vereisten op, volgens het principe 'Gegeven wanneer dan'.

Augurkentaal in Cucumber

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.

Veelgestelde vragen

BDD is een agile werkwijze waarbij teams het verwachte gedrag in begrijpelijke taal beschrijven voordat ze gaan coderen. Gherkin-scenario's leggen dat gedrag vast, zodat zowel de business- als de technische teamleden รฉรฉn en hetzelfde begrip hebben.

Gherkin is de eenvoudige syntaxis voor het schrijven van scenario's. Cucumber is een van de verschillende tools die Gherkin .feature-bestanden lezen en de stappen uitvoeren voor uw applicatie.

Een scenario-overzicht doorloopt dezelfde stappen met meerdere datasets die in een tabel met voorbeelden worden weergegeven. Het voorkomt dat een scenario voor elke set invoerwaarden opnieuw moet worden gemaakt.

Een stapdefinitie koppelt elke Gherkin-stap aan de code die deze uitvoert. Wanneer Cucumber Het leest een stap, vindt de overeenkomende definitie en voert die methode uit op de applicatie.

De drie vrienden zijn een producteigenaar, een ontwikkelaar en een tester die samen een functionaliteit beoordelen. Hun gezamenlijke blik levert duidelijkere en completere Gherkin-scenario's op dan welke rol dan ook afzonderlijk.

Behalve CucumberGherkin wordt ondersteund door SpecFlow voor .NET en Behave voor Python, naast andere BDD-frameworks.

Ja. AI-assistenten zetten een gebruikersverhaal om in conceptuele scenario's volgens het principe 'Gegeven wanneer - Dan', suggereren uitzonderlijke gevallen en zorgen voor consistente formulering, hoewel een tester ze wel moet controleren op nauwkeurigheid.

AI-tools lezen eenvoudige eisen en automatiseren het eerste concept van gestructureerde 'Gegeven-Wanneer-Dan'-stappen. Dit versnelt het schrijfproces, maar teams verfijnen de formulering nog steeds om aan de daadwerkelijke acceptatiecriteria te voldoen.

Vat dit bericht samen met: