Mi a Cucumber Funkciófájl és lépés meghatározása? (Példa)
⚡ Okos összefoglaló
Cucumber A funkciófájlok egyszerű nyelven, Gherkin nyelven írják le a viselkedést, míg a lépésdefiníciók az egyes sorokat futtató kódot tartalmazzák. Cucumber A projektnek mindkettőre szüksége van, fix mappaelrendezésben, egy jellemzőkönyvtár alatt tárolva.
Minden Cucumber projekthez tartozik egy „features” nevű könyvtár a projekt gyökerében. Itt található az összes Cucumber funkció. Ebben a könyvtárban további könyvtárakat találsz, a step_definition és a support könyvtárakat.
Az elrendezés azért fontos, mert Cucumber A fájljaidat a konfiguráció helyett konvenciók alapján ismeri fel. A features könyvtáron kívül található feature fájlokat egyszerűen soha nem olvassa be.
Mi az a „Feature File”?
A funkciók fájl magas szintű leírást tartalmaz a Teszt forgatókönyv egyszerű nyelven. Úgy ismert, mint Ecetes uborkaA Gherkin egy egyszerű angol szövegszerkesztő nyelv.
Cucumber A funkciófájl a következő összetevőkből áll —
- Jellemző: Egy szolgáltatás az aktuális tesztszkriptet írja le, amelyet végre kell hajtani.
- Forgatókönyv: A forgatókönyv egy adott teszteset lépéseit és várható eredményét írja le.
- Forgatókönyv vázlata: Ugyanaz a forgatókönyv több adathalmazra is végrehajtható a forgatókönyvvázlat segítségével. Az adatokat a (II)-vel elválasztott táblázatos szerkezet szolgáltatja.
- Adott: Megadja a végrehajtandó szöveg kontextusát. A „Given” adattáblázat használatával lépés is paraméterezhető.
- AmikorA „Mikor” paraméter határozza meg a végrehajtandó tesztműveletet.
- MajdA teszt várható eredményét az „Akkor” kifejezéssel lehet ábrázolni.
Egy fájl egy Jellemzőt tartalmaz. Az alatta lévő forgatókönyvek a jellemzőt illusztráló konkrét példák, és minden forgatókönyv ugyanazt a ritmust követi: leír egy kiindulási kontextust, leír egy eseményt, leírja a várható eredményt.
Ezután megtanuljuk, hogyan kell beírni a szolgáltatásfájlt Cucumber példával.
Minta funkciófájl példa:
Az ebben az oktatóanyagban közzétett eredeti példa az alábbiakban pontosan úgy szerepel, ahogyan meg van írva.
Feature: Visit career guide page in career.guru99.com Scenario: Visit career.guru99.com Given: I am on career.guru99.com When: I click on career guide menu Then: I should see career guide page
⚠️ Javítás: a fenti példa kettőspontot helyez el a Adott, Amikor és a MajdUborka kettőspontot tesz a következő után: Jellemző és a Forgatókönyv csak. Egy kettősponttal követett step kulcsszó nem elemzi a rendszer a kulcsszót lépésként, így Cucumber csendben figyelmen kívül hagyja a sort. A javított fájl a következőképpen szól.
Feature: Visit career guide page in career.guru99.com Scenario: Visit career.guru99.com Given I am on career.guru99.com When I click on career guide menu Then I should see career guide page
Az elemző nem követeli meg a behúzást, de a szintenkénti két szóköz a hagyományos stílus, és sokkal könnyebbé teszi a hosszú elemek beolvasását. Az alábbi animáció egy elemfájl futtatását mutatja, és minden lépés zöldre vált.
Mi az a „Lépésdefiníció”?
A lépésdefiníció leképezi a teszteset lépéseit a szolgáltatásfájlokban (amelyeket az Adott/Mikor/Akkor vezet be) kódra. Ez végrehajtja a Teszt alatti alkalmazás lépéseit, és összeveti az eredményeket a várt eredményekkel. A lépésdefiníció végrehajtásához meg kell egyeznie a jellemzőben lévő adott összetevővel. A lépés definíciója ruby fájlokban van megadva a „features/step_definitions/*_steps.rb” alatt.
A találatot kizárólag a lépés szövege alapján kell elvégezni. Cucumber nem veszi figyelembe a kulcsszót, amikor definíciót keres, ezért előfordulhat, hogy két lépés ugyanabban a lépéscsomagban soha nem tartalmaz azonos szöveget, még akkor sem, ha az egyik egy Given, a másik pedig egy Then.
Példa a lépések meghatározására: Itt a fentieket fogjuk használni Cucumber Példa a career.guru99.com böngészésének jellemzőfájljára. Olyan jellemzőket fogunk használni, mint a „Mikor”, „Akkor”, „Adott”, az alábbiak szerint. Cucumber Példák jellemző fájlokra.
Step 1: Given (/^ I am on career.guru99.com$/) do Browser.goto "http://career.guru99.com" -This will visit career.guru99 on browser end Step 2: When (/^ click on career guide menu$/) do Browser.text (:name, " career guide" ).click – This will click "career guide menu" end Step 3: Then (/^ I should see career guide page$/) do Browser.goto "http://career.guru99.com/category/career-guide/" - It will visit "career guide page" end
⚠️ Megjegyzés a nyelvekről: A fenti definíciók Ruby-ban vannak, ami ott van, ahol Cucumber elindult, és ezért kapta a mappa nevét step_definitions és a fájlok végződnek _steps.rbUgyanaz a jellemzőfájl hajtja végre a következőben írt lépésdefiníciókat: Java, JavaForgatókönyv, Python vagy C#-ban a Gherkin egyetlen változtatása nélkül. Cucumber-JVM A reguláris kifejezés egy metódus annotációjába kerül:
@Given("I am on career.guru99.com") public void i_am_on_the_career_page() { driver.get("http://career.guru99.com"); }
Bármelyik nyelvet is választod, a lépésdefiníció az egyetlen hely, ahová a megvalósítási részletek tartoznak. Keepping A szelektorok és a HTTP-hívások a funkciófájlból teszik lehetővé egy nem programozó számára a forgatókönyv olvasását. első Cucumber forgatókönyv A végigjátszás ezt a párosítást a végponttól a végéig építi fel.
Forgatókönyvvázlat és példák egy jellemzőfájlban
Egy forgatókönyv háromszori másolása egyetlen érték módosításához a leggyakoribb módja annak, hogy egy funkciófájl olvashatatlanná váljon. Forgatókönyv vázlata a másolatokat egy sablonnal helyettesíti, és egy Példák A táblázat adja meg az értékeket.
A paraméterek csúcsos zárójelben vannak írva, és meg kell egyezniük az alattuk lévő táblázat oszlopfejlécével. Cucumber behelyettesíti az értékeket, mielőtt egyező lépésdefiníciót keresne, így maguk a definíciók nem igényelnek speciális kezelést.
Scenario Outline: Search the career guide Given I am on career.guru99.com When I search for "<keyword>" Then I should see the <section> section Examples: | keyword | section | | interview | Interview Tips| | resume | Resume Guide |
Néhány szempontot érdemes megjegyezni a vázlatok használatakor:
- A vázlat adatsoronként egyszer fut le. Az első sor a fejléc, és soha nem kerül végrehajtásra.
- A forgatókönyv vázlatát legalább egy példa szakasznak kell követnie, különben semmi sem fut le.
- A táblázat pipe-jainak nem kell egy vonalban lenniük, bár az igazításuk biztosítja a fájl olvashatóságát.
- Tartsa a táblázatot kicsiben. Egy harminc soros táblázat általában annak a jele, hogy az adatok egy adott táblázatba tartoznak. adatvezérelt teszt helyette.
Háttér, És, De és a többi uborka kulcsszavak
A korábban felsorolt hat összetevőn túl Gherkinnek van egy maroknyi kulcsszava, amelyek segítenek a hosszabb jellemzőfájlok olvashatóságában.
- Háttér — egy adott lépésekből álló blokk, amely a funkció minden forgatókönyve előtt lefut. Eltávolítja az ugyanazon előfeltétel ismétlődését minden forgatókönyv tetején.
- És és a De — az ismétlődő Given, When vagy Then helyett szolgáló helyettesítők. Jobban olvashatók és azonosan viselkednek; Cucumber mindkét irányban egyezik a lépés szövegével.
- Szabály — opcionális csoportping, amelyet a Gherkin 6-ban adtak hozzá, és amely egy üzleti szabályt illusztráló forgatókönyveket gyűjt össze.
- Dokumentációs karakterláncok — három dupla idézőjellel elválasztott szövegblokk, amelyet egyetlen argumentumként adunk át a lépésdefiníciónak, ha egy sor nem elég.
- Adattáblák — egyetlen lépéshez csatolt, függőleges vonallal elválasztott sorok, amelyekkel értékek listáját lehet átadni az adott lépésnek.
- Címkék — kukac jellel kezdődő címkék, amelyeket egy Jellemző vagy Forgatókönyv fölé helyeznek, hogy futásidőben egy részhalmaz választható legyen.
- Hozzászólások — egy sor, amely kettőskereszttel kezdődik. Megjegyzések csak a sor elején engedélyezettek, és a Gherkinnek nincsenek blokkos megjegyzései.
Összefoglalva, egy megosztott beállításokkal rendelkező funkciófájl így néz ki:
Feature: Career guide navigation Background: Given I am on career.guru99.com Scenario: Open the career guide menu Given I am signed in And my profile is complete When I click on career guide menu Then I should see career guide page But I should not see the admin panel
Gyakori fájlhibák és azok javítása
híd Cucumber A kezdők által jelentett problémák nem keretrendszeri hibák, hanem a Gherkin-szabályok apró, csendben kudarcot valló megsértései.
| Hiba | Mi történik, | Rögzít |
|---|---|---|
| Kettőspont a Given, When vagy Then után | A sort a rendszer nem ismeri fel lépésként, és kihagyja. | Csak a Feature és a Scenario után használjon kettőspontot |
| Két lépés azonos szöveggel | Cucumber duplikátumként kezeli őket, mivel a kulcsszó figyelmen kívül marad | Fogalmazd át az egyik lépést úgy, hogy a kettő másképp hangozzon |
| A funkciók könyvtárán kívüli funkciófájl | A fájlt soha nem fedezik fel, és nem futnak tesztek. | Tartsa meg minden .feature fájl a funkciók mappában |
| Tizenöt lépés egyetlen forgatókönyvben | A forgatókönyv nem működik dokumentációként | Törekedj három-öt lépésre, és a lépésdefinícióba építsd be a részleteket |
| Ezután egy adatbázis soron állítja be | A teszt sikeres, miközben a felhasználó által látható viselkedés sérült | Megfigyelhető kimenetre, például oldalra vagy válaszra vonatkozó állítás |
| Forgatókönyvvázlat példatábla nélkül | A sablon soha nem fut le | Adjon hozzá egy Példák szakaszt közvetlenül a vázlat alá |
Ezeknek a csomag bővítése előtti javítása sokkal olcsóbb, mint utólagos javításuk, mivel minden időközben írt forgatókönyv ugyanazt az alakzatot másolja. Miután a jellemzőfájlok működnek, a következő lépés a projekt bekötése – lásd a Cucumber telepítés átvezető és a szélesebb automatizálási tesztelés sorozat.

