Augurktaal: formaat, syntaxis en augurktest in Cucumber
Wat is augurkentaal?
augurkje is een zakelijk leesbare taal die u helpt om zakelijk gedrag te beschrijven zonder in details van de implementatie te treden. Het is een domeinspecifieke taal voor het definiëren van tests in Cucumber formaat voor specificaties. Het gebruikt gewone taal om use cases te beschrijven en stelt gebruikers in staat om logische details uit gedragstests te verwijderen.
De tekst in de augurkentaal fungeert als documentatie en skelet van uw geautomatiseerde tests. Het augurkenformaat is gebaseerd op TreeTop Grammatica, die in meer dan 37 talen bestaat. Daarom kun je je augurk in 37+ gesproken talen schrijven.
Dit script dient twee primaire doelen:
- Documenteert gebruikersscenario's
- Een geautomatiseerde test schrijven (BDD)
Waarom augurk?
De noodzaak van Gherkin kan eenvoudig worden uitgelegd aan de hand van de volgende afbeeldingen
Vóór augurk
Na Augurk
Augurk Syntax
Augurk is lijngeoriënteerde taal, net als YAML en Python. Elke regel heet stap en begint met trefwoord en eindigt met een stop. Voor de inspringing wordt een tab of spatie gebruikt.
In dit script kun je waar je maar wilt een opmerking toevoegen, maar deze moet beginnen met een #-teken. Het las elke regel na het verwijderen van de trefwoorden van Ghrekin zoals opgegeven, wanneer, toen, enz.
Typische Augurk-stappen zien eruit
Gherkin Scripts: verbindt het menselijke concept van oorzaak en gevolg met het softwareconcept van input/proces/output.
Augurk Syntax
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Een augurkdocument heeft de extensie .feature en is simpelweg een testbestand met een mooie extensie. Cucumber leest het Gherkin-document en voert een test uit om te valideren dat de software zich gedraagt volgens de Gherkin-syntaxis.
Belangrijke termen die worden gebruikt in augurk
- Kenmerk
- Achtergrond
- Scenario
- Gegeven
- .
- Dan
- En
- Maar
- Voorbeelden van scenariooverzichten
Voor de featurenaam wordt de naamgevingsconventie gebruikt. Er zijn echter geen vaste regels voor Cucumber over namen.
Kenmerk
Het bestand moet de extensie .feature hebben en elk featurebestand mag slechts één feature hebben. Het feature-trefwoord is bij de Feature: en daarna wordt er een spatie en naam van de feature geschreven.
Scenario
Elk featurebestand kan meerdere scenario's bevatten, en elk scenario begint met Scenario: gevolgd door de scenarionaam.
Achtergrond
Achtergrondzoekwoord helpt u om wat context aan het scenario toe te voegen. Het kan enkele stappen van het scenario bevatten, maar het enige verschil is dat het vóór elk scenario moet worden uitgevoerd.
Gegeven
Het gebruik van het trefwoord Gegeven is om het systeem in een vertrouwde staat te brengen voordat de gebruiker interactie met het systeem begint. U kunt echter het schrijven van gebruikersinteracties in de gegeven stappen achterwege laten als deze in de stap “Voorwaarde” zijn gegeven.
Syntax:
Given
Given - a test step that defines the 'context Given I am on "/."
.
Wanneer de stap bestaat uit het definiëren van de actie die door de gebruiker wordt uitgevoerd.
Syntax:
When
A When - a test step that defines the 'action' performed When I perform "Sign In."
Dan
Het gebruik van het trefwoord 'dan' is om het te zien resultaat na de actie in wanneer stap. U kunt echter alleen merkbare veranderingen verifiëren.
Syntax:
Then
Then - test step that defines the 'outcome.' Then I should see "Welcome Tom."
En maar
Mogelijk hebt u meerdere gegeven wanneer of dan.
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."
Gegeven, Wanneer, Dan en, maar zijn teststappen. Je kunt ze door elkaar gebruiken. De tolk geeft geen enkele fout weer. Ze zullen echter zeker geen enkele betekenis hebben als ze worden gelezen.
Given The login page is opening When I input username, password and click the Login button Then I am on the Homepage
Augurk voorbeelden
Voorbeeld 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
Het hierboven genoemde scenario betreft een functie genaamd gebruikersaanmelding.
Augurk analyseert elke stap die in het stapdefinitiebestand is geschreven. Daarom worden de stappen gegeven in het featurebestand en moet het stapdefinitiebestand overeenkomen.
Voorbeeld 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
Beste praktijken voor het gebruik van augurk
- Elk scenario moet afzonderlijk worden uitgevoerd
- Elke functie zou mee moeten kunnen worden uitgevoerd
- Stappeninformatie moet onafhankelijk worden weergegeven
- Verbind uw Scenario's met uw vereisten
- Houd volledig bij welke scenario's in een vereistendocument moeten worden opgenomen
- Creëer modulaire en gemakkelijk te begrijpen stappen
- Probeer al uw veelvoorkomende scenario's te combineren
Voordelen van augurk
- Augurk is eenvoudig genoeg om te begrijpen voor niet-programmeurs
- Programmeurs kunnen het gebruiken als een zeer solide basis om hun tests te starten
- Het maakt User Stories makkelijker verteerbaar
- Het augurkscript kan gemakkelijk worden begrepen door bedrijfsleiders en ontwikkelaars
- Gherkin Testing richt zich op de zakelijke vereisten
- Een aanzienlijk deel van de functionele specificaties is geschreven als user stories
- U hoeft geen expert te zijn om de kleine Augurk-opdrachtenset te begrijpen
- Gherkin Test cases koppelen acceptatietests direct aan geautomatiseerde tests
- De schrijfstijl van testcases is gemakkelijker om code in andere tests te hergebruiken
Nadelen van augurk
- Het vereist een hoog niveau van zakelijke betrokkenheid en samenwerking
- Werkt mogelijk niet goed in alle scenario's
- Slecht geschreven tests kunnen de onderhoudskosten van de test gemakkelijk verhogen
Samenvatting
- Augurk is het formaat voor komkommerspecificaties
- Augurk is lijngeoriënteerde taal, net als YAML en Python
- Gherkin Scripts verbindt het menselijke concept van oorzaak en gevolg met het softwareconcept van input/proces en output
- Functie, Achtergrond, Scenario, Gegeven, Wanneer, Dan en Maar worden belangrijk gebruikt in Augurk
- In Augurk moet elk scenario afzonderlijk worden uitgevoerd
- Het grootste voordeel van Augurk is eenvoudig genoeg voor niet-programmeurs om te begrijpen
- Augurkentest werkt mogelijk niet goed in alle soorten scenario's