A JUnit Assertions Class statikus módszerek gyűjteményét tartalmazza, amelyek lehetővé teszik egységtesztek elvégzését. Az állítások a JUnit egyik alapvető jellemzői. Ez az osztály több mint ötven különböző módszert tartalmaz. Egyes Assertions osztálytesztek meghiúsulnak, ha egy feltétel igaz, míg mások meghiúsulnak, ha egy feltétel hamis.
Az Assertions osztálynak is sok túlterhelt metódusa van. Minden állítási módszernek van legalább két túlterhelt metódusa. Fedezze fel a népszerűbb Assertions osztálymetódusokat, és ismerje meg, hogyan használhatja őket egységtesztek végrehajtására.
Az assertEquals módszer
A JUnit 5 assertEquals metódusnak több mint tíz változata van. Ez a módszer az egyik legnépszerűbb Assertions osztálymetódus. Az assertEquals metódus egyik változata egy várható értéket és a kiértékelni kívánt függvényt (tényleges értéket) vesz fel. A második fő változathoz egy további harmadik érv is szükséges. Ez egy hibaüzenet, amely akkor jelenik meg, ha a JUnit egység teszt nem sikerül.
Az assertEquals metódus túlterhelése különböző adattípusokkal történik. Egyes assertEquals túlterhelési módszerek egy negyedik argumentumot vesznek fel, amelyet delta-nak neveznek. Más verziók a hibakarakterláncot Szállító funkcionális interfésszel helyettesítik, a lambda kifejezés.
AssertionsMethods Java osztály
csomag com.program;
nyilvánososztályÁllítások Módszerek{
nyilvánosstatikusintnégyzet(int szám){
Visszatérés szám * szám;
}
}
A fenti AssertionsMethods Java osztály egyetlen négyzet nevű metódussal rendelkezik. A négyzetes metódus egész értéket vesz fel, és a négyzetét adja vissza. A négyzetes módszer és az AssertionsMethods osztály bármely jövőbeni metódusának teszteléséhez létre kell hoznia egy JUnit tesztesetet.
Az AssertionsMethodsTest JUnit teszteset
csomag com.program;
importstatikusorg.junit.Állítsd ki.assertEquals;
importstatikusorg.junit.Jupiter.api.Állítások.*;importorg.junit.Jupiter.api.Teszt;
osztályAssertionsMethodsTest{
@Teszt
ürestestSquare(){
asserEquals(25, Assertion Methods.négyzet(5));
assertEquals (36, AssertionMethods.square (6), "A négyzetértékei nem egyeznek.");
assertEquals (49, AssertionMethods.square (7), () ->"A négyzetértékei nem egyeznek.");
}
}
A testSquare() metódus az assertEquals() három változatát használja a square() metódus tesztelésére. Minden assertEquals() sikeres, mivel az összes várt érték megegyezik a square() metódus által visszaadott tényleges értékekkel.
Az assertNull módszer
A JUnit Assertions osztály pontosan három assertNull metódussal rendelkezik. Mindegyik metódus egy vagy több argumentumot vesz fel, és azt állítja, hogy az adott objektum nulla. Ha egy adott objektum nem nulla, akkor a teszt sikertelen lesz.
@Teszt
nyilvánosürestestStringValue(){
Húr stringValue = nulla;
assertNull (stringValue);
assertNull (stringValue, "A karakterlánc értéke nem null");
assertNull (stringValue, () ->"A karakterlánc értéke nem null");
}
Az első assertNull() metódus vesz egy string objektumot, és ellenőrzi, hogy az null-e. A második assertNull() metódus egy string objektumot és egy karakterlánc-üzenetet vesz fel a megjelenítésre, ha a teszt sikertelen. A harmadik és egyben utolsó assertNull() metódus a kiértékelni kívánt objektumot és egy szállítói funkcionális interfészt veszi fel.
A fenti tesztesetben a szállítói felület egy lambda-kifejezés hozzárendelési célpontjaként működik. A lambda kifejezés hibaüzenetet generál, ha a teszt sikertelen.
Az assertTrue módszer
Az assertTrue() metódusnak hat változata van. Mindegyik módszer azt állítja, hogy egy adott feltétel igaz. Ha az assertTrue() feltétel hamis, a teszt sikertelen lesz.
@Teszt
ürestestEvenNumbers(){
int szám1 = 10;
int szám2 = 16;
int szám3 = 26;
assertTrue (1 < szám2);
assertTrue (num3 > szám2, "A feltételed nem igaz.");
assertTrue (1 < szám3, () ->" A feltételed nem igaz.");
assertTrue(() -> szám1%2 == 0);
assertTrue(() -> szám2%2 == 0, "Az Ön értéke nem páros szám.");
assertTrue(() -> szám3%2 == 0, () ->"Az Ön értéke nem páros szám.");
}
A testEvenNumbers() metódus bemutatja, hogyan kell használni mind a hat assertTrue() metódust. A fenti módszerek mindegyike igaz, ezért ez az egységteszt hiba vagy hiba nélkül fut le.
- assertTrue (logikai feltétel): ez a metódus logikai feltételt vesz fel, és azt állítja, hogy igaz-e. Ennek a módszernek a példája a fenti kódban azt állítja, ha az első egész érték kisebb, mint a második.
- assertTrue (logikai feltétel, karakterláncüzenet): ez a módszer egy logikai feltételt vesz igénybe a teszteléshez, és egy karakterláncot jelenít meg, ha hamis.
- assertTrue (Logi feltétel, szállító
messageSupplier): ez a módszer egy logikai és egy szállítói funkcionális interfészt vesz fel lambda kifejezésként. Az üzenet szállítója tartalmaz egy karakterláncot, amelyet akkor kell megjeleníteni, ha a logikai feltétel hamis. - assertTrue (BooleanSupplier booleanSupplier): ez a módszer egy BooleanSupplier funkcionális interfészt vesz fel egy lambda-kifejezés formájában, amely igazra vagy hamisra értékeli ki. Ennek a módszernek a példája a kódban lambda kifejezést használ. Megvizsgálja az első egész szám maradékát osztva kettővel, hogy megállapítsa, páros vagy páratlan.
- assertTrue (BooleanSupplier booleanSupplier, String üzenet): ez a metódus egy BooleanSupplier funkcionális interfészt vesz fel lambda kifejezés formájában. Szintén szöveges üzenetet kell kinyomtatni, ha a BooleanSupier nem igaz.
- assertTrue (BooleanSupplier booleanSupplier, Szállító
messageSupplier): ez a módszer egy BooleanSupplier funkcionális interfészt igényel az érvényesítéshez. Szükség van egy Szállító funkcionális interfészre is, amely egy lambda-kifejezés, amely karakterlánc-értéket nyomtat, ha a teszt sikertelen.
Az assertFalse módszer
Az assertFalse() metódus az assertTrue() metódus ellentéte. Ez a módszer kiértékeli egy adott feltételt, hogy megnézze, hamis-e. Ha egy adott feltétel igaz, akkor az assertFalse() teszt sikertelen lesz. Az assertFalse() metódusnak hat változata is van, amelyek ugyanazokat az argumentumokat fogadják el, mint az assertTrue() megfelelőik.
@Teszt
ürestestNotEvenNumbers(){
int szám1 = 11;
int szám2 = 17;
int szám3 = 27;
assertFalse (num2 < szám1);
assertFalse (num2 > szám3, " A feltételed nem hamis.");
assertFalse (num3 < szám1, () ->" A feltételed nem hamis.");
assertFalse(() -> szám1%2 == 0);
assertFalse(() -> szám2%2 == 0, "Az Ön értéke páros szám.");
assertFalse(() -> szám3%2 == 0, () ->"Az Ön értéke páros szám.");
}
A testNotEvenNumbers() metódus hat assertFalse() metódusa mind false eredményt ad, ami azt jelenti, hogy az assertFalse() tesztek sikeresek.
Az egységteszt előnyei
Az egységteszt a szoftverfejlesztési folyamat szerves része. A nagy szoftverprojektek különféle okok miatt kudarcot vallanak, a rajtuk dolgozó csapatoktól a fejlesztési megközelítésekig.
Az egységteszt célja a szoftverhibák kiküszöbölése a hiba korai felismerésével. Ez megköveteli a csapatoktól, hogy világos specifikációkat dolgozzanak ki, javítsák a szoftvertervezést a hibadokumentáció segítségével, és támogatást nyújtsanak a szoftverkarbantartáshoz.
Az egységtesztelés nem az egyetlen szoftvertesztelési megközelítés, amelyet a fejlesztési életciklusa során alkalmaznia kell, ez csak egy nagyon jó kiindulópont.