Mi az a Junit Assert?
Az Assert egy módszer, amely hasznos lehet egy tesztesemény sikeres vagy sikertelen állapotának meghatározásában. Az assert módszereket az org.junit.Assert osztály biztosítja, amely kiterjeszti a java.lang.Object osztályt.
Különböző típusú állítások léteznek, például logikai, nulla, azonos stb.
A Junit biztosítja az Assert nevű osztályt, amely egy csomó állítási módszert kínál, amelyek hasznosak a tesztesetek megírásához és a teszt kudarcának felderítéséhez
Az állítási módszereket az org.junit.Assert osztály biztosítja, amely kiterjeszti a java.lang.Object osztályt.
Ebben az oktatóanyagban megtanulja-
- JUnit Assert módszerek
- Logikai
- Null tárgy
- Azonos
- Állítsd be az egyenlőt
- Tegyen eleget tömb egyenlőnek
- Sikertelen üzenet
- JUnit assertEquals
- Lebegőpontos állítások
- JUnit Assert Example
JUnit Assert módszerek
Logikai
Ha tesztelni szeretné a logikai feltételeket (igaz vagy hamis), használhatja a következő állítási módszereket
- assertTrue (feltétel)
- assertFalse (feltétel)
Itt a feltétel logikai érték.
Null tárgy
Ha ellenőrizni szeretné egy objektum / változó kezdeti értékét, a következő módszereket kell használnia:
- assertNull (objektum)
- assertNotNull (objektum)
Itt az objektum Java objektum, pl. AssertNull (tényleges);
Azonos
Ha azt szeretné ellenőrizni, hogy az objektumok azonosak-e (azaz két hivatkozást hasonlítanak-e ugyanazon java objektumra), vagy különböznek-e.
- assertSame (várható, tényleges), igaz lesz, ha várható == tényleges
- assertNotSame (várható, tényleges)
Állítsd be az egyenlőt
Ha két objektum egyenlőségét szeretné tesztelni, akkor a következő módszereket alkalmazza
- assertEquals (várható, tényleges)
Igaz lesz, ha: várt.egyenlő (tényleges) igaz.
Tegyen eleget tömb egyenlőnek
Ha tesztelni szeretné a tömbök egyenlőségét, akkor a következő módszereket alkalmazza az alábbiak szerint:
- assertArrayEquals (várható, tényleges)
Ha a tömbök azonos hosszúságúak, akkor a fenti módszert kell használni, az i érvényes értékeihez az alábbiak szerint ellenőrizheti:
- assertEquals (várható [i], tényleges [i])
- assertArrayEquals (várható [i], tényleges [i])
Sikertelen üzenet
Ha bármilyen állítási hibát szeretne dobni, akkor a fail () van, amely mindig kudarcos ítéletet eredményez.
- Fail (üzenet);
Megadhatja az érvényesítési módszert egy további String paraméterrel első paraméterként. Ez a karakterlánc a hibaüzenethez lesz csatolva, ha az állítás sikertelen. Pl. Fail (üzenet) így írható
- assertEquals (üzenet, várható, tényleges)
JUnit assertEquals
Megvan az assertEquals (a, b), amely az Object osztály equals () módszerére támaszkodik .
- Itt értékelni fogjuk az a.egyenlőséget (b).
- Itt a vizsgált osztályt használjuk a megfelelő egyenlőségi viszony meghatározására.
- Ha egy osztály nem írja felül az Object class egyenlő () metódusát , akkor megkapja az equals () metódus alapértelmezett viselkedését , azaz az objektumidentitást.
Ha a és b primitívek, például bájt , int , logikai érték stb., Akkor az assertEquals (a, b) esetében a következőket kell végrehajtani:
az a és a b ekvivalens konvertáló objektumtípussá ( bájt, egész szám , logikai érték stb.) konvertálódik , majd az a.egyenlőség (b) kiértékelésre kerül.
Például: Tekintsük az alább említett, azonos értékű húrokat, teszteljük az assertTrue használatával
String obj1 = "Junit";String obj2 = "Junit";assertEquals (obj1, obj2);
Az állítás fölött az true értéket adja vissza, mivel az obj1.equals (obj2) értéke true.
Lebegőpontos állítások
Ha lebegőpontos típusokat szeretne összehasonlítani (pl. Kettős vagy lebegő ), akkor szükség van egy további szükséges paraméter delta-ra, hogy elkerülje a kerekítési hibákat a lebegőpontos összehasonlítás során.
Az állítás az alábbiak szerint értékelhető:
- Math.abs (várható - aktuális) <= delta
Például:
assertEquals (aDoubleValue, anotherDoubleValue, 0,001)
JUnit Assert Example
Az alábbi példa bemutatja, hogyan lehet egy állapotot érvényesíteni a JUnit állítási módszerekkel.
Hozzunk létre egy egyszerű teszt osztályt, amelynek neve Junit4AssertionTest.java, és egy teszt futó osztály TestRunner.java .
Néhány változót és fontos állításokat fog létrehozni a JUnit-ben.
Ebben a példában a TestRunner.java használatával hajtja végre tesztosztályunkat
1. lépés: Hozzunk létre egy osztályt, amely lefedi az összes fontos állításmódszert junitban:
Junit4AssertionTest.java
csomag guru99.junit;import statikus org.junit.Assert. *;import org.junit.Test;public class Junit4AssertionTest {@Tesztpublic void testAssert () {// Változó nyilatkozatString string1 = "Junit";String string2 = "Junit";String string3 = "teszt";String string4 = "teszt";String string5 = null;int változó1 = 1;int változó2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// Állítások állításaassertEquals (string1, string2);assertSame (string3, string4);assertNotSame (string1, string3);assertNotNull (string1);assertNull (string5);assertTrue (változó12. lépés) Létre kell hoznia egy teszt futó osztályt a fenti osztály végrehajtásához:
TestRunner.java
csomag guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;nyilvános osztály TestRunner {public static void main (String [] érvel) {Eredmény eredménye = JUnitCore.runClasses (Junit4AssertionTest.class);for (Hiba hiba: result.getFailures ()) {System.out.println (fail.String ());}System.out.println ("Result ==" + result.wasSuccessful ());}}3. lépés) A várható kimenetet lépésről lépésre elemezhetjük:
Tekintsen minden állítást egyenként:
- assertEquals (string1, string2);
Most hasonlítsa össze a string1 = "Junit" és a string2 = "Junit" elemeket az object class egyenlő módszerével. Az assertEquals metódus cseréje a java.lang.Object.equals () metódusból:
A string1.equals (string2) => true-t ad vissza
Tehát az assertEquals (string1, string2) igaz lesz .
- assertSame (string3, string4);
Az "assertSame ()" funkció annak ellenőrzése, hogy a két objektum ugyanarra az objektumra vonatkozik-e.
Mivel a string3 = "test" és a string4 = "test" azt jelenti, hogy a string3 és a string4 egyaránt azonos típusú, ezért az assertSame (string3, string4) true- t ad vissza .
- assertNotSame (string1, string3);
Az "assertNotSame ()" funkció annak ellenőrzése, hogy a két objektum nem ugyanarra az objektumra vonatkozik-e.
Mivel a string1 = "Junit" és a string3 = "test" azt jelenti, hogy a string1 és a string3 is különböző típusú, ezért az assertNotSame (string1, string3) true-val tér vissza .
- assertNotNull (string1);
Az "assertNotNull ()" funkcióval ellenőrizni kell, hogy egy objektum nem null-e.
Mivel a string1 = "Junit", amely nem null érték, ezért az assertNotNull (string1) igaz lesz .
- assertNull (string5);
Az "assertNull ()" funkció annak ellenőrzésére szolgál, hogy egy objektum null.
Mivel a string5 = null, amely null érték, ezért az assertNull (string5) true értéket ad vissza .
- assertTrue (változó1
Az "assertTrue ()" funkcióval ellenőrizni kell, hogy egy feltétel igaz-e.
Mivel a változó1 = 1 és a változó2 = 2, ami azt mutatja, hogy a változó1
igaz lesz .
- assertArrayEquals (airethematicArrary1, airethematicArrary2);
Az "assertArrayEquals ()" funkcióval ellenőrizni kell, hogy a várt tömb és az eredményezett tömb megegyezik-e. A tömb típusa lehet int, hosszú, rövid, char, byte vagy java.lang.Object.
Mivel az airethematicArrary1 = {1, 2, 3} és az airethematicArrary2 = {1, 2, 3}, amely azt mutatja, hogy mindkét tömb egyenlő, ezért az assertArrayEquals (airethematicArrary1, airethematicArrary2) igaz lesz
Mivel a Junit4AssertionTest.java osztály mind a hét állítási állítása igazra tér vissza, ezért a teszt állítási osztály végrehajtásakor sikeres tesztet ad vissza. (lásd az alábbi kimenetet)
4. lépés: Kattintson jobb gombbal a Junit4AssertionTest.java elemre, majd kattintson a runAs-> JUnit elemre. A kimenetet az alábbiak szerint fogja látni:
A fenti kimenet a várt módon sikeres teszt eredményt mutat.
Összegzés:
Ebben az oktatóanyagban megtanulta a JUnit által biztosított összes fontos állítási módot. Látta az állító állítások példáit is. Ami azt mutatja, hogy ha az összes állítás igaz, akkor a teszt GUI igaz eredményt ad, és ha az egyetlen teszt sikertelen, akkor sikertelen eredményt ad vissza.