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.