Uborka (szoftver)
LépésdefiníciókSzerkesztés
 A Gherkin “s .feature fájlok lépései metódushívásnak tekinthetők. végrehajthat egy lépést, a lépésdefiníción keresztül meg kell mondani, hogyan kell végrehajtani ezt a lépést. 
 A definíciókat Ruby-ban írják, és általában a features/step_definitions/*_steps.rb alatt iktatják be. A definíciók ugyanazokkal a kulcsszavakkal kezdődnek, mint a meghívásuk (beleértve Gherkin teljes nyelvi támogatását). Mindegyik definícióhoz két argumentum szükséges. 
- Vagy reguláris kifejezés, vagy karakterlánc $ változókkal
 - Ruby kódot tartalmazó blokk végrehajtására
 
Példa reguláris kifejezések használatával
Given /(.*) has a valid Credit or Debit card/ do |name| # Ruby codeend
 Példa karakterláncok és $ változók használatára. Vegye figyelembe, hogy futás közben a karakterlánc átalakul reguláris kifejezéssé, és bármely $ változó átalakul (.*) egyezésre. 
Given "$name has a valid Credit or Debit card" do |name| # Ruby codeend
HooksEdit
 A horgok az uborka módja annak, hogy lehetővé tegyék a beállítás elvégzését a tesztek futtatása előtt és a lebontást később. Ezeket futtatható Ruby-blokkokként definiálják. , hasonlóan a @Before, @After kommentárokkal megjelölt JUnit-módszerekhez. Hagyományosan a support/ alá helyezik őket, és globálisan alkalmazzák őket. Három alapvető típusú horog létezik 
-  
Before– Forgatókönyv előtt fut -  
After– A szcenárió -  
Around– Felveszi az irányítást és körbefut egy szcenárió 
További horgok:
-  
BeforeStep -  
AfterStep -  
AfterConfiguration– Az uborka konfigurálása után fut, és átadják az in a konfiguráció állása 
 Before, After, and Around horgok opcionálisan felveszik a címkeszűrési forgatókönyvek listáját, amelyekre vonatkoznak. Az ugyanabban a karaktersorozatban található címkék listája OR, míg az egyes argumentumok AND; A címkék opcionálisan tagadhatók úgy, hogy megelőzik a következőt: ~. 
Példa egy kampó előtt címkézett
Before("@ATM") do |scenario| # Ruby codeend
 A kampókat gyakran használják az adatbázis állapotának fenntartására, általában a forgatókönyv futtatása előtti megtisztítással. Lehetőség van egy tranzakció elindítására és visszagörgetésére a Before és a After kampók használatával is, és sok uborka-bővítmény @txn címke ilyen célra. 
Integrációk és implementációkEdit
A Cucumber nem Ruby implementációi léteznek olyan népszerű nyelveknél, mint a Java, a JavaScript és a Python. Az integrációs tesztelési keretrendszerek támogatása is létezik. A megvalósítások teljes listája megtalálható az Uborka oldalon. A Cucumber integrált tesztelő eszközökkel rendelkezik, amelyek sok folyamatos integrációs konfigurációval jól működnek. Vannak uborka bővítmények olyan népszerű CI eszközökhöz, mint a Jenkins és a TeamCity, valamint olyan IDE-khez, mint az Eclipse és a RubyMine.
Az alábbiakban bemutatunk egy példát a Java-ra írt lépésmeghatározásra a Cucumber-JVM használatával.
@Given("(.*) has a valid Credit or Debit card")public void has_card(String name) { // Java code}
Formázó beépülő modulokEdit
Az uborka Formázó beépülő modulokat használ a kimenet biztosításához. Alapértelmezés szerint több általános formátumot biztosítanak, például
- JSON
 - HTML
 - JUnit
 
A rendelkezésre álló formátumok nincs szabványosítva a különböző uborka megvalósításokban, ezért a kínálat eltérhet. Az uborka olyan gazdag kimeneti formátumokat is támogat, mint a képek és videók.
A böngésző automatizálásaEdit
Az uborka nem nyújt beépített böngésző-automatizálást. Ez azonban jól működik olyan meglévő programokkal, mint a Selenium és a WATiR-WebDriver. Támogatja a tranzakciókkal kapcsolatos tesztek futtatását más programok, például az ActiveRecord kihasználásával.
Uborka parancssori szerkesztés
 Az uborka beépített parancssori felülettel rendelkezik, amely átfogó utasításlistát tartalmaz. . A legtöbb parancssori eszközhöz hasonlóan az uborka is megadja az --help opciót, amely összefoglalja az argumentumokat, amelyeket a parancs elfogad. 
Az uborka parancssor használható definiált tesztek gyors futtatására. . Támogatja a forgatókönyvek egy részének futtatását is a címkék szűrésével.
$ cucumber --tags @tag-name
 A fenti parancs csak azoknak a forgatókönyveknek a végrehajtásában segít, amelyek rendelkeznek a megadott @tag-name. Az érvek logikai OR vagy AND címkeként adhatók meg. A címkéken kívül a forgatókönyvek szűrhetők a forgatókönyvek nevére. 
$ cucumber --name logout
A fenti parancs csak azokat a forgatókönyveket futtatja, amelyek tartalmazzák a szót “kijelentkezés”.
 Az is hasznos, ha megtudhatjuk, mi hibázott, ha egy teszt nem sikerült. Az uborka megkönnyíti a kód hibáinak elkapását a --backtrace opcióval.
 Az uborka úgy is konfigurálható, hogy figyelmen kívül hagyjon bizonyos, még be nem fejezett forgatókönyveket, ha azokat a Folyamatban lévő munka @wip címkével jelöli. Amikor az uborka átadja az --wip argumentumot, az uborka figyelmen kívül hagyja a @wip címkével ellátott forgatókönyveket.