Junit Assert & AssertEquals cu Exemplu
Ce este Junit Assert?
Assert este o metodă utilă în determinarea stării de succes sau eșec al unui caz de testare. Metodele de assert sunt furnizate de clasa org.junit.Assert care extinde clasa java.lang.Object.
Există diferite tipuri de aserțiuni, cum ar fi booleene, nule, identice etc.
Junit oferă o clasă numită Assert, care oferă o mulțime de metode de afirmare utile în scrierea cazurilor de testare și pentru a detecta eșecul testului
Metodele de afirmare sunt furnizate de clasă org.junit.Assert care se extinde java.lang.Object clasă.
JUnit Metode de afirmare
boolean
Dacă doriți să testați condițiile booleene (adevărate sau false), puteți utiliza următoarele metode assert
- assertTrue (stare)
- assertFalse (stare)
Aici condiția este o valoare booleană.
Obiect nul
Dacă doriți să verificați valoarea inițială a unui obiect/variabilă, aveți următoarele metode:
- assertNull(obiect)
- assertNotNull(obiect)
Aici este obiectul Java obiect de exemplu assertNull(actual);
Identic
Dacă doriți să verificați dacă obiectele sunt identice (adică comparând două referințe la același obiect java) sau diferite.
- assertSame (așteptată, reală), Va reveni adevărat dacă aşteptat == actual
- assertNotSame (așteptată, reală)
Afirmați Egal
Dacă doriți să testați egalitatea a două obiecte, aveți următoarele metode
- assertEquals (așteptată, reală)
Va reveni adevărat dacă: așteptat.egal (real) returnează adevărat.
Asert Array Equals
Dacă doriți să testați egalitatea matricelor, aveți următoarele metode, după cum sunt prezentate mai jos:
- assertArrayEquals(așteptată, reală)
Metoda de mai sus trebuie utilizată dacă tablourile au aceeași lungime, pentru fiecare valoare validă pentru i, îl puteți verifica după cum se arată mai jos:
- assertEquals(așteptat[i],actual[i])
- assertArrayEquals(așteptat[i],actual[i])
Mesaj de eșec
Dacă doriți să aruncați orice eroare de afirmare, aveți eșuează() care duce întotdeauna la un verdict eșuat.
- Eșec (mesaj);
Puteți avea o metodă de afirmare cu o metodă suplimentară Şir parametru ca prim parametru. Acest șir va fi adăugat în mesajul de eșec dacă afirmația eșuează. De exemplu eșuează (mesaj) poate fi scris ca
- assertEquals(mesaj, așteptat, actual)
JUnit assertEquals
Tu ai assertEquals(a,b) care se bazează pe egal () metoda clasei Object.
- Aici va fi evaluat ca a.egal( b ).
- Aici clasa testată este utilizată pentru a determina o relație de egalitate adecvată.
- Dacă o clasă nu trece peste egal () Metodă de Obiect clasa, va primi comportamentul implicit al egal () metoda, adică identitatea obiectului.
If a și b sunt primitivi precum octet, int, boolean, etc. atunci se va face următoarele pentru assertEquals(a,b):
a și b vor fi convertite în tipul lor de obiect wrapper echivalent (Octet, întreg, boolean, etc.), și apoi a.egal (b) vor fi evaluate.
De exemplu: luați în considerare șirurile menționate mai jos care au aceleași valori, să-l testăm folosind assertTrue
String obj1="Junit"; String obj2="Junit"; assertEquals(obj1,obj2);
Declarația de mai sus assert va returna adevărat, deoarece obj1.equals(obj2) returnează adevărat.
Afirmații în virgulă mobilă
Când doriți să comparați tipurile în virgulă mobilă (de ex dubla or pluti), aveți nevoie de un parametru suplimentar necesar deltă pentru a evita problemele cu erorile de rotunjire în timp ce faceți comparații în virgulă mobilă.
Afirmația se evaluează după cum se arată mai jos:
- Math.abs( așteptat – actual ) <= delta
De exemplu:
assertEquals( aDoubleValoare, altaDoubleValoare, 0.001)
JUnit Exemplu de afirmare
Exemplul de mai jos demonstrează cum să afirmi o condiție folosind JUnit metode de afirmare.
Să creăm o clasă de test simplă numită Junit4AssertionTest.java și o clasă de alergători de probă TestRunner.java.
Veți crea câteva variabile și afirmații importante în JUnit.
În acest exemplu, veți executa clasa noastră de testare folosind TestRunner.java
Pas 1) Să creăm o clasă care să acopere toate metodele importante de declarații assert în 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); } }
Pas 2) Trebuie să creați o clasă test runner pentru a executa clasa de mai sus:
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()); } }
Pas 3) Să analizăm rezultatul așteptat pas cu pas:
Luați în considerare toate afirmațiile afirmative una câte una:
- assertEquals(șir1,șir2);
Acum comparați string1=”Junit” cu string2=”Junit” cu metoda equals a clasei de obiecte. Înlocuirea metodei assertEquals din metoda java.lang.Object.equals() :
șir1.equals(șir2) => returnează adevărat
Deci assertEquals(string1,string2) va reveni adevărat.
- assertSame(șir3, șir4);
Funcționalitatea „assertSame()” este de a verifica dacă cele două obiecte se referă la același obiect.
Deoarece șir3=”test” și șir4=”test” înseamnă că atât șir3, cât și șir4 sunt de același tip, astfel încât assertSame(șir3, șir4) va returna adevărat.
- assertNotSame(șir1, șir3);
Funcționalitatea „assertNotSame()” este de a verifica dacă cele două obiecte nu se referă la același obiect.
Deoarece șir1=”Junit” și șir3=”test” înseamnă că atât șir1, cât și șir3 sunt de tipuri diferite, deci assertNotSame(șir1, șir3) va returna adevărat.
- assertNotNull(șir1);
Funcționalitatea „assertNotNull()” este de a verifica dacă un obiect nu este nul.
Deoarece șir1 = „Junit”, care este o valoare non-nulă, așa că assertNotNull(șir1) va returna adevărat.
- assertNull(string5);
Funcționalitatea „assertNull()” este de a verifica dacă un obiect este nul.
Deoarece string5= null, care este o valoare nulă, assertNull(string5) va reveni adevărat.
- assertTrue(variabila1
Funcționalitatea „assertTrue()” este de a verifica dacă o condiție este adevărată.
Deoarece variabila1=1 și variabila2=2, ceea ce arată acea variabilă1 adevărat.
- assertArrayEquals(airethematicArrary1, airethematicArray2);
Funcționalitatea „assertArrayEquals()” este de a verifica dacă matricea așteptată și matricea rezultată sunt egale. Tipul Array poate fi int, long, short, char, byte sau java.lang.Object.
Deoarece airethematicArrary1 = { 1, 2, 3 } și airethematicArrary2 = { 1, 2, 3 } care arată că ambele matrice sunt egale, astfel încât assertArrayEquals(airethematicArray1, airethematicArrary2) va reveni adevărat
Întrucât toate cele șapte susțin declarații ale Junit4AssertionTest.java class returnează adevărat, prin urmare, atunci când executați clasa test assert, va returna un test de succes. (vezi rezultatul de mai jos)
Pas 4) Faceți clic dreapta pe Junit4AssertionTest.java și faceți clic pe runAs->JUnit. Veți vedea rezultatul după cum este prezentat mai jos:
Rezultatul de mai sus arată un rezultat al testului de succes, așa cum era de așteptat.
Rezumat
În acest tutorial, ați învățat toate tipurile importante de metode de afirmare oferite de JUnit. De asemenea, ați văzut exemplele de declarații assert. Ceea ce arată că, dacă toate declarațiile assert returnează adevărate, atunci GUI-ul testului va returna un rezultat adevărat și dacă testul unic nu reușește, va returna un rezultat eșuat.