Kurkkukieli: syntaksi, muoto ja esimerkit
โก รlykรคs yhteenveto
Gherkin on liiketoiminnan kannalta luettava kieli, joka kuvaa ohjelmiston toimintaa ilman toteutusta koskevia yksityiskohtia. Se kรคyttรครค Given-, When- ja Then-avainsanoja mรครคrittelemรครคn Cucumber testiskenaariot selkokielellรค, jotka toimivat elรคvรคnรค dokumentaationa ja automatisoitujen BDD-testien runkona.

Mikรค on Gherkin Language?
etikkakurkku on liiketoiminnan kannalta luettava kieli, joka auttaa kuvaamaan liiketoiminnan kรคyttรคytymistรค menemรคttรค toteutuksen yksityiskohtiin. Se on toimialakohtainen kieli testien mรครคrittelemiseen Cucumber muodossa. Se kuvaa kรคyttรถtapauksia selkokielellรค ja antaa kรคyttรคjien poistaa loogisia yksityiskohtia kรคyttรคytymistesteistรค.
Gherkinin teksti toimii dokumentaationa ja automatisoitujen testien runkona. Gherkin-muoto perustuu TreeTop Grammariin, joka on olemassa yli 37 kielellรค, joten voit kirjoittaa Gherkiniรค yli 37 puhutulla kielellรค. Skriptillรค on kaksi pรครคtarkoitusta: se dokumentoi kรคyttรคjรคskenaarioita ja tarjoaa perustan automatisoitujen BDD-testien kirjoittamiselle.
Miksi Gherkin?
Ilman yhteistรค, selkeรครค muotoa liiketoiminta- ja tekniset tiimit kuvaavat vaatimukset eri tavoin, mikรค aiheuttaa vรครคrinkรคsityksiรค. Gherkin antaa kaikille yhden, jรคsennellyn sanaston, joka on kuin tavallista englantia, mutta liittyy suoraan suoritettaviin testeihin.
Gherkinin syntaksi
Gherkin on riviorientoitunut kieli, aivan kuten YAML ja PythonJokaista riviรค kutsutaan vaiheeksi (step), ja se alkaa avainsanalla. Sisennyksiin kรคytetรครคn sarkainmerkkejรค tai vรคlilyรถntejรค. Kommentin voi lisรคtรค mihin tahansa, mutta sen on alettava #-merkillรค. Tulkki lukee jokaisen rivin poistettuaan Gherkin-avainsanat, kuten Given, When ja Then.
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Gherkin-dokumentilla on .feature-tiedostotunniste, ja se on yksinkertaisesti testitiedosto kuvaavalla tiedostotunnisteella. Cucumber lukee Gherkin-dokumentin ja suorittaa testin varmistaakseen, ettรค ohjelmisto toimii Gherkin-syntaksin kuvaamalla tavalla.
Tรคrkeitรค termejรค, joita kรคytetรครคn suolakurkussa
Pรครคavainsanat ovat Ominaisuus, Tausta, Skenaario, Koska, Milloin, Sitten, Ja, Mutta ja Skenaarion pรครคpiirteet. Cucumber ei ole tiukkoja nimeรคmissรครคntรถjรค, mutta selkeรค nimeรคmiskรคytรคntรถ auttaa.
Ominaisuus
Tiedoston tiedostopรครคtteen tulisi olla .feature, ja jokaisen ominaisuustiedoston tulisi kuvata vain yksi ominaisuus. Avainsana Feature alkaa merkeillรค Ominaisuus: jota seuraa vรคlilyรถnti ja ominaisuuden nimi.
skenaario
Jokaisella ominaisuustiedostolla voi olla useita skenaarioita, ja jokainen skenaario alkaa Skenaario: ja sen jรคlkeen skenaarion nimi.
Tausta
Background-avainsana lisรครค kontekstia skenaarioon. Se voi sisรคltรครค vaiheita, jotka kaikki skenaariot jakavat; ero on siinรค, ettรค nรคmรค vaiheet suoritetaan ennen jokaista skenaariota.
Tietty
Annettu avainsana asettaa jรคrjestelmรคn tunnettuun tilaan ennen kuin kรคyttรคjรค aloittaa vuorovaikutuksen sen kanssa. Se mรครคrittelee ennakkoedellytyksen eli kontekstin:
Given I am on "/."
Kun
When-avainsana mรครคrittรครค kรคyttรคjรคn suorittaman toiminnon:
When I perform "Sign In."
Sitten
Then-avainsana mรครคrittรครค When-vaiheen toiminnon jรคlkeen havaitun tuloksen. Sinun tulisi tarkistaa vain havaittavat muutokset:
Then I should see "Welcome Tom."
Ja Mutta
Sinulla voi olla useita Given-, When- tai Then-vaiheita. And- ja But-avainsanat lisรครคvรคt luettavuuden parantamiseksi lisรคvaiheita:
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Koska When, Then, And ja But ovat kaikki testiaskeleita. Tulkki ei aiheuta virhettรค, jos vaihdat ne, mutta skenaario ei lue jรคrkevรคsti, joten kรคytรค kutakin avainsanaa sen aiottuun tarkoitukseen.
Kurkku-esimerkkejรค
Esimerkki 1: Kirjautumistoiminto sosiaalisen median sivustolle.
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 analysoi jokaisen ominaisuustiedostoon kirjoitetun vaiheen, ja ominaisuustiedoston vaiheiden on vastattava vaiheen mรครคritystiedoston vaiheita.
Esimerkki 2: Kรคyttรคjรคn todennusskenaario taustan kanssa.
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
Gherkin kรคytรถn parhaat kรคytรคnnรถt
- Jokaisen skenaarion tulisi toteutua erikseen ja itsenรคisesti.
- Jokaisen ominaisuuden tulisi olla suoritettavissa itsenรคisesti.
- Vaiheiden tiedot tulisi nรคyttรครค erikseen.
- Yhdistรค skenaariosi vaatimuksiisi ja track mitkรค skenaariot kuuluvat kuhunkin vaatimukseen.
- Luo modulaarisia, helposti ymmรคrrettรคviรค vaiheita ja yhdistรค yleisiรค skenaarioita.
- Kuvaile, mitรค jรคrjestelmรค tekee, รคlรค miten se sen tekee.
Gherkinin edut
- Gherkin on tarpeeksi yksinkertainen, jotta ei-ohjelmoijatkaan ymmรคrtรคisivรคt sen.
- Ohjelmoijat voivat kรคyttรครค sitรค vankkana pohjana testiensรค aloittamiseen.
- Se helpottaa kรคyttรคjรคtarinoiden omaksumista ja vastaa liiketoiminnan vaatimuksiin.
- Sekรค yritysjohtajat ettรค kehittรคjรคt voivat lukea samaa kรคsikirjoitusta.
- Gherkin-testitapaukset linkittรคvรคt hyvรคksymistestit suoraan automatisoituihin testeihin.
- Kirjoitustyyli helpottaa koodin uudelleenkรคyttรถรค eri testeissรค.
Gherkinin haitat
- Se vaatii vahvaa liiketoimintaosaamista ja yhteistyรถtรค.
- Se ei vรคlttรคmรคttรค toimi hyvin kaikissa tilanteissa.
- Huonosti kirjoitetut testit voivat lisรคtรค testien yllรคpitokustannuksia.
