De drie meest voorkomende fouten bij het schrijven van Gherkin functies

In het verleden heb ik aan veel projecten gewerkt, waarbij Gherkin werd gebruikt voor test automation of om functionaliteiten te beschrijven. Tijdens mijn werk heb ik drie veelvoorkomende Gherking Fouten opgemerkt, die ik keer op keer tegenkom. Met een duidelijk voorbeeld kunt u zien hoe u een Gherkin-scripts schrijft als u een inleiding over het onderwerp nodig hebt.

De volgende aanbeveling zijn nuttig voor beide toepassingen.

common gherkin mistakes

 

1. Scripts schrijven in de eerste persoon in plaats van de derde persoon

Wanneer mensen met Gherkin starten krijgen ze al snel het gevoel dat de acties die ze uitvoeren tijden het doorlopen van een functionaliteit moeten beschrijven.

Wrong

Given I am logged in
When I delete a post on the blog
Then I should see a successful deleted message

Het probleem in dit geval is dat het niet duidelijk is wie deze ‘Ik’-persoon is. Is het een beheerder, een moderator of een lid? Dit is belangrijke informatie bij het lezen van Gherkin, zodat u het sneller kunt begrijpen. Dit bericht gaat dieper in op waarom het gebruik van de derde persoon beter is.

Right

Given the administrator is logged in
When the user deletes a post on the blog
Then a successful deleted message should display

2. Elke actie beschrijven in plaats van een functionaliteit

Schrijven van Gherkin wordt vaak gezien alsof u elke actie moet beschrijven om zo tot de volgende stap te komen: elke klik, tekstinvoer en webpagina. Gherkin is echter bedoeld om een specifieke stroom die u doormaakt te beschrijven.

Wrong

Given the user is on “http://training-page.testautomation.info/”
When the user fills in “test” for username
And the user fills in “test” for password
And the user clicks on the login button
And the user clicks on the logout button
Then the user should be on the login page
And the avatar should not display in the right top

Right

Given the test user is logged in on the training page
When the user logs out
Then the login page should display as expected

Als dit scenario wordt gebruikt bij functionele tests, zal iemand die het leest, begrijpen wat er moet gebeuren. Voor test automation kunnen alle verschillende kliks op code niveau worden opgelost. Met een meer functionele beschrijving is het ook gemakkelijker om de code te groeperen en jezelf minder te herhalen.

3. Gebruik absolute waarden in plaats van configureerbare waarden

Bij het schrijven van Gherkin scripts is het snel en gemakkelijk om een eenvoudige absolute values te gebruiken. Bijvoorbeeld een gebruikersnaam en wachtwoord of de waarden die in een registratieformulier worden gebruikt.

U kunt het best proberen om uw absolute waarden naar een configuratiebestand te verplaatsen, zodat uw gebruikersinformatie op een centrale plaats kan instellen.

Wrong

Given the user navigates to “http://training-page.testautomation.info/”
When the user fills in “test” for “#login-username”
And the user fills in “test” for “#login-password”
And the user clicks on button “submit”
Then the page should display in logged in state

Right

Given “test-user” navigates to page “landing-page”
When the user logs in
Then the page should display in logged in state

In dit geval wordt de URL verplaatst naar een configuratiewaarde genaamd “landing-page” en de gebruikersreferenties in “test-user”. Als in de toekomst een van deze waarden verandert dan hoeft u maar een één configuratiewaarde te wijzigen.

Het laatste woord

Stel uzelf bij het schrijven Gherkin scenario’s de volgende vragen:

  • Wat is het doel van mijn scenario?
  • Is mijn scenario beschrijvend?
  • Kan ik minder stappen gebruiken om het te beschrijven?

Cucumber and Gherkin zijn ongelooflijk handig als u ze op een betrouwbare manier leert gebruiken. We houden van dit dynamische duo en daarom hebben we een gids geschreven over Cucumber en Gherkin die u moet lezen.

Leer hoe u uw Cucumber en Selenium-webtests opzet en uitvoert op GitLab en hoe u efficiënter werkt met test automation door Calliope Pro te gebruiken. Calliope Pro is niet alleen ontworpen als een dashboard om testresultaten te delen en te vergelijken met de rest van het ontwikkelingsteam (onafhankelijk van de tool of framework), maar het stelt u ook in staat om een planning te maken en testresultaten op aanvraag uit te voeren.

 

Bedankt voor het lezen!

Gijs Pauldies, Test Automation Engineer

 

Aanbevolen berichten

Author: Gijs Paulides

Gijs is the lead developer and product owner of Calliope.pro. He has a background in functional testing, automated testing and developping in multiple different programming languages.

We’re spriteCloud, a leader in software and cybersecurity testing.

Aside from interesting articles, we also have a team of software testers that can help your organisation.

Have a look at our testing solutions.

Stay up-to-date on all things quality assurance, test automation, and cybersecurity.

Subscribe to our mailing list!