Uborka és forgatókönyv vázlat

1. Bemutatkozás

Az uborka egy BDD (Behavioral Driven Development) tesztelési keretrendszer.

A keretrendszer használata ismétlődő forgatókönyvek megírásához a bemenetek / kimenetek különböző permutációival meglehetősen időigényes, nehéz fenntartani és természetesen frusztráló lehet.

Az uborka megoldást kapott az erőfeszítés csökkentésére a Forgatókönyv vázlat példákkal párosítva. Az alábbi részben megpróbálunk felvenni egy példát, és megtudhatjuk, hogyan tudjuk minimalizálni ezt az erőfeszítést.

Ha többet szeretne megtudni a megközelítésről és a Gherkin nyelvről, akkor nézze meg ezt a cikket.

2. Uborka támogatás hozzáadása

A Cucumber támogatásának hozzáadásához egy egyszerű Maven-projektben hozzá kell adnunk a következő függőségeket:

 info.cukes uborka-junit 1.2.5 teszt info.cukes uborka-java 1.2.5 teszt org.hamcrest hamcrest-library 1.3 teszt 

Hasznos hivatkozások a Maven Central függőségeire: uborka-junit, uborka-java, hamcrest-könyvtár

Mivel ezek tesztelő könyvtárak, nem szükséges őket a tényleges telepíthetőséggel együtt szállítani - ezért mindannyian teszt hatókörrel.

3. Egyszerű példa

Bemutassuk a kiemelt fájlok duzzasztott és tömör írásmódját egyaránt. Először határozzuk meg azt a logikát, amelyhez tesztet akarunk írni:

Először határozzuk meg azt a logikát, amelyhez tesztet akarunk írni:

public class Calculator {public int add (int a, int b) {return a + b; }}

4. Uborka tesztek meghatározása

4.1. Funkciófájl meghatározása

Funkció: Számológép Felhasználóként számológépet szeretnék használni számok hozzáadásához, hogy ne kelljen hozzáadnom magam Forgatókönyv: Két szám -2 és 3 hozzáadása Adott, hogy van számológépem, amikor -2 és 3 adok hozzá, akkor az eredménynek legyen 1 forgatókönyv: Adjon hozzá két számot 10 és 15 Adott számológépem van, amikor hozzáadok 10-et és 15-et, akkor az eredménynek 25 

Ahogy itt látható, 2 különböző számkombinációt teszteltek itt az összeadás logikájával. A számokon kívül az összes forgatókönyv pontosan megegyezik.

4.2. „Ragasztás” kód

Ezen szituációk kipróbálása érdekében elengedhetetlen minden lépés megadása a megfelelő kóddal annak érdekében, hogy egy állítást funkcionális kóddá alakítsak:

public class CalculatorRunSteps {private int total; saját kalkulátor kalkulátor; @ Privát void előtt init () {total = -999; } @Given ("^ Van egy kalkulátorom $") public void InitializeCalculator () dobja Dobható {számológép = új Számológép (); } @Mikor ("^ Hozzáadom (-? \ d +) és (-? \ d +) $") public void testAdd (int szám1, int szám2) dobás Dobható {összesen = számológép.add (szám1, szám2); } @Akkor ("^ az eredménynek (-? \ d +) $") kell lennie public void validateResult (int eredmény) dobja Dobható {Assert.assertThat (összesen, Matchers.equalTo (eredmény)) dob; }}

4.3. Futóosztály

A funkciók és a ragasztókód integrálása érdekében használhatjuk a JUnit futókat:

@RunWith (Cucumber.class) @CucumberOptions (features = {"classpath: features / calculator.feature"}, adhesive = {"com.baeldung.cucumber.calculator"}) public class CalculatorTest {}

5. A szolgáltatások átírása a forgatókönyv vázlatok segítségével

A 4.1. Szakaszban láttuk. hogyan lehet egy funkciófájl meghatározása időigényes feladat és nagyobb a hibára való hajlam. Ugyanaz a funkciófájl csupán néhány sorra csökkenthető a Forgatókönyv vázlata:

Funkció: Számológép Felhasználóként számológépet szeretnék használni számok hozzáadásához, hogy ne kelljen hozzáadnom magam. Forgatókönyv vázlat: Két szám hozzáadása és Adott számológépem van, amikor hozzáadom, és akkor az eredménynek Példák: num1 | num2 | összesen | | -2 | 3 | 1. | | 10. | 15. | 25. | | 99 | -99 | 0 | | -1 | -10 | -11 |

Ha összehasonlítunk egy rendes Forgatókönyv meghatározása val vel Forgatókönyv vázlata, az értékeket már nem kell keményen kódolni a lépésdefiníciókban. Az értékeket az as paraméterekkel helyettesítik magában a lépésdefinícióban.

A forgatókönyv vázlat végén az értékeket csövekkel elválasztott táblázat formátumban definiáljuk a használatával Példák.

Meghatározandó minta Példák az alábbiakban látható:

Példák: | Parameter_Name1 | Parameter_Name2 | | Érték-1 | 2. érték | | X-érték | Y-érték |

6. Következtetés

Ezzel a gyors cikkel megmutattuk, hogyan lehet a forgatókönyveket általános jellegűvé tenni. És csökkentse a forgatókönyvek megírásával és fenntartásával kapcsolatos erőfeszítéseket is.

A cikk teljes forráskódja megtalálható a GitHub oldalon.