A Cucumber egy olyan szoftvereszköz, amely támogatja a viselkedésvezérelt fejlesztést (BDD).[1][2][3][4][5][6] Az Cucumber BDD megközelítésének központi eleme a Gherkin nevű közönséges nyelvi elemző. Ez lehetővé teszi az elvárt szoftverviselkedések logikus nyelven történő meghatározását, amelyet a ügyfelek is megérthetnek. Így a Cucumber lehetővé teszi a vállalkozási szövegben megírt funkcióleírások végrehajtását.[7][1][2] Gyakran használják más szoftverek tesztelésére.[8] Automatizált elfogadási teszteket futtat, viselkedésvezérelt fejlesztési (BDD) stílusban.[9]
A Cucumber eredetileg a Ruby programozási nyelven íródott.[1][2] és kezdetben kizárólag Ruby tesztelésre szolhált az RSpec BDD keretrendszer kiegészítéseként. A Cucumber jelenleg többféle programozási nyelvet támogat különböző implementációkon keresztül, beleértve a Java-t[10][2] és a JavaScriptet.[11][12] Létezik egy Cucumber port .NET-re,[13][14][15] amely SpecFlow néven fut és mára már a Reqnroll váltott fel.[16]
A Gherkin az a nyelv, amelyet a Cucumber használ a tesztesetek meghatározására. Célja, hogy nem technikai és ember által olvasható legyen, és összességében leírja a szoftverrendszerhez kapcsolódó felhasználási eseteket.[1][17][18] A Gherkin szintaxisának célja a viselkedésvezérelt fejlesztési gyakorlatának elterjedését az egész fejlesztőcsapatban, ideértve az üzleti elemzőket és a menedzsereket is. Célja, hogy szilárd, egyértelmű követelményeket szabjon meg a követelmények kezdeti fázisaitól kezdve az üzleti vezetés által és a fejlesztés életciklusának más szakaszaiban.
A Gherkin természetes nyelvi szintaxisa nemcsak egy automatizált tesztelési szkriptet biztosít, hanem egyszerű dokumentációt is nyújt a tesztelendő kódról.[18] A Gherkin jelenleg több tucat nyelvben támogatja a kulcsszavakat.[18][19][1][2]
A szintaxis a sorokra összpontosít, ami hasonló a Pythonhoz. A fájl szerkezetét whitespace(szóköz) és egyéb vezérlőkarakterek határozzák meg.[18] #
jelzi a sor kommentjét, és bárhová helyezhető a fájlban[18] Az utasítások minden nem üres és nem komment sorból állnak. Ezek egy felismert Gherkin kulcsszóból állnak, amelyet egy karakterlánc követ.[20]
Minden Gherkin fájl .feature kiterjesztésű. Ezek egyetlen Funkció definíciót tartalmaznak a tesztelendő rendszerhez, és végrehajtható tesztszkriptek.[20]
Íme egy példa a szintaxisra:[21]
Feature: Guess the word
# The first example has two steps
Scenario: Maker starts a game
When the Maker starts a game
Then the Maker waits for a Breaker to join
# The second example has three steps
Scenario: Breaker joins a game
Given the Maker has started a game with the word "silky"
When the Breaker joins the Maker's game
Then the Breaker must guess a word with 5 characters
A Cucumber beépített parancssori felülettel rendelkezik, amely átfogó utasításlistát tartalmaz. Mint a legtöbb parancssori eszköz, a Cucumber is biztosítja a --help
opciót, amely összefoglalja a parancs által elfogadott argumentumokat.[22].
$ cucumber --help
-r, --require LIBRARY|DIR Require files before executing the features.
--i18n LANG List keywords for in a particular language.
Run with "--i18n help" to see all languages.
-f, --format FORMAT How to format features (Default: pretty).
-o, --out [FILE|DIR] Write output to a file/directory instead of
...
A Cucumber parancssori felület használható a meghatározott tesztek gyors futtatására. Támogatja a scenáriók egy részhalmazának futtatását is a címkék szűrésével.
$ cucumber --tags @tag-name
A fenti parancs segít azokat a scenáriókat segít végrehajtani, amelyek rendelkeznek a megadott @tag-name
címkével[22] Az argumentumok megadhatók logikai OR
vagy AND
műveleteként. A címkéken kívül a scenáriók szűrhetők a neveik alapján is.[22]
$ cucumber --name logout
A fenti parancs csak azokat a scenáriókat fogja futtatni, amelyek tartalmazzák a „logout” szót.
Hasznos az is, hogy megtudhatjuk hogy mi hibázott, ha egy teszt sikertelen. A Cucumber a --backtrace
opcióval megkönnyíti a kódhibák észlelését.[22]
Ez a szócikk részben vagy egészben a Cucumber (software) című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.