Cucumber (szoftver)
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]
Gherkin nyelv
[szerkesztés]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]
Szintaxis
[szerkesztés]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
Parancssor
[szerkesztés]
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]
Hivatkozások
[szerkesztés]- ↑ a b c d e The Pragmatic Bookshelf | The Cucumber Book. Pragprog.com. [2012. január 21-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. január 24.)
- ↑ a b c d e Rose, Seb. The Pragmatic Bookshelf | The Cucumber For Java Book. Pragprog.com (2015. február 15.). Hozzáférés ideje: 2019. április 28.
- ↑ What is Cucumber?. cucumber. (Hozzáférés: 2019. június 8.)
- ↑ Aslak Hellesøy: The world's most misunderstood collaboration tool. cucumber
- ↑ Nagy, Gáspár. The BDD Books - Discovery. Leanpub (2017. március 7.). ISBN 978-1983591259
- ↑ Rose, Seb. The BDD Books – Formulation. Leanpub (2021. április 27.). ISBN 979-8723395015
- ↑ Fox, Armando. Engineering Software as a Service. Strawberry Canyon, 218–255. o. (2016). ISBN 978-0-9848812-4-6
- ↑ Automated testing with Selenium and Cucumber (angol nyelven). www.ibm.com, 2013. augusztus 6. (Hozzáférés: 2017. február 9.)
- ↑ Soeken, Mathias.szerk.: Furia: Objects, Models, Components, Patterns, Lecture Notes in Computer Science (angol nyelven). Springer Berlin Heidelberg, 269–287. o.. DOI: 10.1007/978-3-642-30561-0_19 (2012. május 29.). ISBN 9783642305603
- ↑ Cucumber-jvm. cucumber. (Hozzáférés: 2018. március 8.)
- ↑ Cucumber-js. cucumber. (Hozzáférés: 2018. március 8.)
- ↑ Naidele Manjunath: No Code? No Problem — Writing Tests in Plain English. Times Open, 2019. február 1. (Hozzáférés: 2019. április 29.)
- ↑ Binding Business Requirements to .NET Code. SpecFlow. (Hozzáférés: 2019. április 29.)
- ↑ SpecFlow. GitHub. (Hozzáférés: 2019. április 29.)
- ↑ Richard Lawrence. Behavior-Driven Development with Cucumber. Addison Wesley (2018. szeptember 11.)
- ↑ Nagy: From SpecFlow to Reqnroll: Why and How. reqnroll.net. Reqnroll. (Hozzáférés: 2024. április 18.)
- ↑ cucumber/gherkin (angol nyelven). GitHub. (Hozzáférés: 2017. február 9.)
- ↑ a b c d e Gherkin Syntax. cucumber. (Hozzáférés: 2019. július 9.)
- ↑ Gherkin Supported Languages. cucumber/cucumber: Cucumber monorepo - building blocks for Cucumber in various languages. (Hozzáférés: 2021. március 21.)
- ↑ a b Reference. cucumber. [2015. október 25-i dátummal az eredetiből archiválva]. (Hozzáférés: 2016. január 17.)
- ↑ Gherkin Reference. cucumber. [2024. január 13-i dátummal az eredetiből archiválva]. (Hozzáférés: 2024. február 11.)
- ↑ a b c d Wynne: The Cucumber Book. SafariBooksOnline. (Hozzáférés: 2016. január 22.)
Fordítás
[szerkesztés]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.