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.

  • ๐Ÿ“ Selkokieli: Gherkin kuvaa kรคyttรคytymistรค, jotta ei-ohjelmoijat voivat lukea ja kirjoittaa testejรค.
  • ๐Ÿฅ’ Cucumber: Cucumber lukee .feature-tiedostot ja suorittaa Gherkin-vaiheet testeinรค.
  • ๐Ÿ”‘ Annettu-Kun-Sitten: Annettu asettaa kontekstin, Kun laukaisee toiminnon, Sitten vahvistaa tuloksen.
  • ๐Ÿงฑ Avainsanat: Ominaisuus, Tausta, Skenaario, Ja ja Mutta jรคsentรคvรคt jokaisen skenaarion.
  • โœ… Paras harjoitus: Pidรค jokainen skenaario itsenรคisenรค ja kuvaile mitรค, รคlรค miten.
  • ๐Ÿค– AI-apu: Tekoรคlytyรถkalut laativat yksinkertaisista vaatimuksista saatuja skenaarioita.

Kurkkukieli Cucumber

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.

UKK

BDD on ketterรค kรคytรคntรถ, jossa tiimit kuvaavat odotetun kรคyttรคytymisen selkokielellรค ennen koodausta. Gherkin-skenaariot kuvaavat tรคtรค kรคyttรคytymistรค, jotta liiketoiminnan ja tekniset jรคsenet ymmรคrtรคvรคt sen yhtรคpitรคvรคsti.

Gherkin on selkokielinen syntaksi skenaarioiden kirjoittamiseen. Cucumber on yksi useista tyรถkaluista, jotka lukevat Gherkin .feature -tiedostoja ja suorittavat vaiheet sovelluksessasi.

Skenaarion รครคriviivat suorittavat samat vaiheet useilla esimerkkitaulukon alla luetelluilla tietojoukoilla. Se vรคlttรครค skenaarion pรครคllekkรคisyyden jokaiselle syรถttรถarvojoukolle.

Vaiheen mรครคritelmรค yhdistรครค jokaisen Gherkin-vaiheen koodiin, joka suorittaa sen. Cucumber lukee vaiheen, se lรถytรครค vastaavan mรครคritelmรคn ja suorittaa kyseisen metodin sovellukselle.

Kolme kumppania ovat tuoteomistaja, kehittรคjรค ja testaaja, jotka tarkastelevat ominaisuutta yhdessรค. Heidรคn yhdistetty nรคkemyksensรค tuottaa selkeรคmpiรค ja kattavampia Gherkin-skenaarioita kuin mikรครคn yksittรคinen rooli.

Lisรคksi CucumberGherkiniรค tukevat SpecFlow .NETille ja Behave-sovellukselle Pythonmuiden BDD-kehysten ohella.

Kyllรค. Tekoรคlyavustajat muuttavat kรคyttรคjรคtarinan luonnoksiksi, ehdottavat reunatapauksia ja pitรคvรคt sanamuodot johdonmukaisina, vaikka testaajan tulisi tarkistaa niiden oikeellisuus.

Tekoรคlytyรถkalut lukevat selkeรคt vaatimukset ja automatisoivat strukturoitujen Given-When-Then-vaiheiden ensimmรคisen version. Tรคmรค nopeuttaa sisรคllรถntuotantoa, mutta tiimit tarkentavat sanamuotoja vastaamaan todellisia hyvรคksymiskriteerejรค.

Tiivistรค tรคmรค viesti seuraavasti: