Junit Assert & AssertEquals s primjerom
⚡ Pametni sažetak
JUnit Assert i AssertEquals određuju status prolaza ili neuspjeha testnog slučaja uspoređujući očekivane i stvarne vrijednosti. Ovaj resurs objašnjava assert metode koje pruža org.junit.Assert, uključujući boolean, null, identity, equality i array assert, s cjelovitim radnim primjerom.
Što je Junit Assert?
Assert je metoda korisna za određivanje statusa Pass ili Fail testnog slučaja. Assert metode pruža klasa org.junit.Assert, koja proširuje klasu java.lang.Object.
Postoje različite vrste tvrdnji, kao što su Booleove, Null, Identic itd.
JUnit pruža klasu pod nazivom Assert, koja nudi niz metoda tvrdnji korisnih za pisanje testnih slučajeva i otkrivanje neuspjeha testova.
Assert metode osigurava klasa org.junit.Assert, što proširuje java.lang.Object klase.
JUnit Metode tvrdnji
Booleova
Ako želite testirati logičke uvjete (true ili false), možete koristiti sljedeće assert metode:
- assertTrue(uvjet)
- assertFalse(uvjet)
Ovdje je uvjet Booleova vrijednost.
Nulti objekt
Ako želite provjeriti početnu vrijednost objekta/varijable, imate sljedeće metode:
- assertNull(objekt)
- assertNotNull(objekt)
Ovdje je objekt Java objekt, npr assertNull(stvarno);
Identičan
Ako želite provjeriti jesu li objekti identični (tj. uspoređujući dvije reference na isti Java objekt) ili drugačije:
- assertIsta(očekivano, stvarno) — Vratit će vrijednost true ako očekivano == stvarno.
- assertNotSame(očekivano, stvarno)
Utvrdi jednako
Ako želite provjeriti jednakost dvaju objekata, imate sljedeću metodu:
- assertEquals(očekivano, stvarno)
Vratit će se true if očekivano.jednako(stvarno) vraća true.
Potvrdi polje jednako
Ako želite provjeriti jednakost nizova, imate sljedeću metodu:
- assertArrayEquals(očekivano, stvarno)
Gornja metoda se mora koristiti ako nizovi imaju istu duljinu. Za svaku valjanu vrijednost za i, možete provjeriti kako je navedeno u nastavku:
- assertEquals(očekivano[i], stvarno[i])
- assertArrayEquals(očekivano[i], stvarno[i])
Poruka o neuspjehu
Ako želite izbaciti bilo kakvu pogrešku tvrdnje, jeste iznevjeriti(), što uvijek rezultira presudom o neuspjehu.
- neuspjeh(poruka);
Možete imati metodu tvrdnje s dodatnim Niz parametar kao prvi parametar. Ovaj niz će biti dodan poruci o neuspjehu ako tvrdnja ne uspije. Na primjer, neuspjeh(poruka) može se napisati kao:
- assertEquals(poruka, očekivano, stvarno)
JUnit assertEquals
Vi imate assertEquals(a, b), koji se oslanja na jednako () metoda klase Object.
- Ovdje će se ocijeniti kao a.jednako je(b).
- Ovdje se klasa koja se testira koristi za određivanje prikladne relacije jednakosti.
- Ako klasa ne nadjačava jednako () metoda Objekt razred, dobit će zadano ponašanje od jednako () metoda, tj. identitet objekta.
If a i b su primitivci kao što su bajt, int, booleanitd., tada će se za assertEquals(a, b) napraviti sljedeće:
a i b će se pretvoriti u svoj ekvivalentni tip objekta omotača (Bajt, Cijeli broj, Booleov, itd.), a zatim a.jednako je(b) će se ocjenjivati.
Na primjer, razmotrimo dolje navedene nizove znakova koji imaju iste vrijednosti; testirajmo to pomoću assertEquals:
String obj1 = "Junit"; String obj2 = "Junit"; assertEquals(obj1, obj2);
Gornja assert naredba će vratiti true jer obj1.equals(obj2) vraća true.
Tvrdnje s pomičnim zarezom
Kada želite usporediti tipove s pomičnim zarezom (npr. dvostruko or plutati), potreban vam je dodatni obavezni parametar, delta, kako bi se izbjegli problemi sa zaokruživanjem prilikom usporedbi s pomičnim zarezom.
Tvrdnja se procjenjuje kako je navedeno u nastavku:
- Math.abs(očekivano – stvarno) <= delta
Na primjer:
assertEquals(aDoubleVrijednost, drugoDoubleVrijednost, 0.001)
JUnit Primjer tvrdnje
Donji primjer pokazuje kako se utvrđuje uvjet pomoću JUnit assert metode.
Napravimo jednostavnu testnu klasu pod nazivom Junit4AssertionTest.java i klasu probnih trkača TestRunner.java.
Kreirat ćete nekoliko varijabli i važnih assert naredbi u JUnit.
U ovom primjeru, izvršit ćete našu testnu klasu koristeći TestRunner.java.
Korak 1) Napravimo klasu koja pokriva sve važne metode assert naredbi u JUnit:
Junit4AssertionTest.java
package guru99.junit; import static org.junit.Assert.*; import org.junit.Test; public class Junit4AssertionTest { @Test public void testAssert() { // Variable declaration String string1 = "Junit"; String string2 = "Junit"; String string3 = "test"; String string4 = "test"; String string5 = null; int variable1 = 1; int variable2 = 2; int[] airethematicArrary1 = { 1, 2, 3 }; int[] airethematicArrary2 = { 1, 2, 3 }; // Assert statements assertEquals(string1, string2); assertSame(string3, string4); assertNotSame(string1, string3); assertNotNull(string1); assertNull(string5); assertTrue(variable1 < variable2); assertArrayEquals(airethematicArrary1, airethematicArrary2); } }
Korak 2) Morate kreirati klasu za izvršavanje testova kako biste izvršili gornju klasu:
TestRunner.java
package guru99.junit; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(Junit4AssertionTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result==" + result.wasSuccessful()); } }
Korak 3) Analizirajmo očekivani izlaz korak po korak. Razmotrimo sve tvrdnje jednu po jednu:
- assertEquals(string1, string2);
Sada usporedite string1=”Junit” sa string2=”Junit” s metodom equals klase Object. Zamijenite metodu assertEquals metodom java.lang.Object.equals():
string1.equals(string2) => vraća true
Dakle, assertEquals(string1, string2) će vratiti istinski.
- assertSame(niz3, niz4);
Funkcionalnost „assertSame()“ služi za provjeru odnose li se dva objekta na isti objekt. Budući da su string3=”test” i string4=”test”, i string3 i string4 su istog tipa, pa će assertSame(string3, string4) vratiti istinski.
- assertNotSame(niz1, niz3);
Funkcionalnost „assertNotSame()“ služi za provjeru da se dva objekta ne odnose na isti objekt. Budući da su string1=”Junit” i string3=”test”, i string1 i string3 su različitih tipova, pa će assertNotSame(string1, string3) vratiti istinski.
- assertNotNull(string1);
Funkcionalnost „assertNotNull()“ provjerava je li objekt null. Budući da je string1=”Junit”, što je vrijednost različita od null, assertNotNull(string1) će vratiti istinski.
- assertNull(string5);
Funkcionalnost "assertNull()" provjerava je li objekt null. Budući da je string5=null, što je null vrijednost, assertNull(string5) će vratiti istinski.
- assertTrue(varijabla1 < varijabla2);
Funkcionalnost „assertTrue()“ provjerava je li uvjet istinit. Budući da je varijabla1=1 i varijabla2=2, što pokazuje da je uvjet varijabla1 < varijabla2 istinit, assertTrue(varijabla1 < varijabla2) će vratiti istinski.
- assertArrayEquals(airethematicArrary1, airethematicArrary2);
Funkcionalnost „assertArrayEquals()“ provjerava jesu li očekivani niz i rezultirajući niz jednaki. Tip niza može biti int, long, short, char, byte ili java.lang.Object. Budući da je airethematicArrary1 = { 1, 2, 3 } i airethematicArrary2 = { 1, 2, 3 }, što pokazuje da su oba niza jednaka, assertArrayEquals(airethematicArrary1, airethematicArrary2) će vratiti istinski.
Budući da svih sedam tvrdnji o Junit4AssertionTest.java klasa vraća true, kada izvršite klasu test assert, vratit će uspješan test (pogledajte izlaz ispod).
Korak 4) Desnom tipkom miša kliknite na Junit4AssertionTest.java i kliknite na Pokreni kao -> JUnit. Vidjet ćete izlaz kao što je navedeno u nastavku:
Gornji izlaz pokazuje uspješan rezultat testa kako se i očekivalo.


