Ce este Junit Assert?
Afirmarea este o metodă utilă pentru determinarea stării de trecere sau nereușită a unui caz de testare. Metodele de afirmare sunt furnizate de clasa org.junit.Assert care extinde clasa java.lang.Object.
Există diferite tipuri de afirmații precum Boolean, Null, Identic etc.
Junit oferă o clasă numită Assert, care oferă o grămadă de metode de afirmare utile în scrierea cazurilor de testare și pentru a detecta eșecul testului
Metodele de afirmare sunt furnizate de clasa org.junit.Assert care extinde clasa java.lang.Object .
În acest tutorial, veți învăța-
- Metode JUnit Assert
- Boolean
- Obiect nul
- Identic
- Afirmați egal
- Afirmați matrice egale
- Mesaj de eșec
- JUnit afirmă Egale
- Afirmații în virgulă mobilă
- Exemplu JUnit Assert
Metode JUnit Assert
Boolean
Dacă doriți să testați condițiile booleene (adevărat sau fals), puteți utiliza următoarele metode de afirmare
- 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 obiectul este un obiect Java, de ex. AssertNull (actual);
Identic
Dacă doriți să verificați dacă obiectele sunt identice (adică compararea a două referințe la același obiect java) sau diferite.
- assertSame (așteptat, actual), va reveni adevărat dacă este așteptat == real
- 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ă: expected.equals (actual) returnează adevărat.
Afirmați matrice egale
Dacă doriți să testați egalitatea matricelor, aveți următoarele metode, așa cum sunt prezentate mai jos:
- assertArrayEquals (așteptat, real)
Metoda de mai sus trebuie utilizată dacă matricile au aceeași lungime, pentru fiecare valoare validă pentru i , o puteți verifica așa cum este prezentat 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 fail () care duce întotdeauna la un verdict de eșec.
- Eșec (mesaj);
Puteți avea metoda de afirmare cu un parametru String suplimentar ca prim parametru. Acest șir va fi adăugat în mesajul de eșec dacă afirmația eșuează. De exemplu, eșec (mesaj) poate fi scris ca
- assertEquals (mesaj, așteptat, real)
JUnit afirmă Egale
Aveți assertEquals (a, b) care se bazează pe metoda equals () a clasei Object.
- Aici va fi evaluat ca a.equals (b).
- Aici clasa supusă testului este utilizată pentru a determina o relație de egalitate adecvată.
- Dacă o clasă nu suprascrie metoda equals () a clasei Object , va primi comportamentul implicit al metodei equal () , adică identitatea obiectului.
Dacă a și b sunt primitive, cum ar fi octet , int , boolean etc., atunci se vor face următoarele pentru assertEquals (a, b):
a și b vor fi convertite în tipul lor obișnuit de ambalaj ( Byte, Integer , Boolean etc.) și apoi va fi evaluat a.equals (b) .
De exemplu: Luați în considerare șirurile menționate mai jos, având aceleași valori, haideți să îl testăm folosind assertTrue
String obj1 = "Junit";String obj2 = "Junit";assertEquals (obj1, obj2);
Afirmația de mai sus va reveni adevărată, deoarece obiect1.equals (obj2) returnează adevărat.
Afirmații în virgulă mobilă
Când doriți să comparați tipurile de virgulă mobilă (de exemplu, dublă sau flotantă ), aveți nevoie de un delta suplimentar al parametrului necesar pentru a evita problemele cu erori de rotunjire în timp ce faceți comparații în virgulă mobilă.
Afirmația se evaluează după cum este prezentat mai jos:
- Math.abs (așteptat - actual) <= delta
De exemplu:
assertEquals (aDoubleValue, anotherDoubleValue, 0,001)
Exemplu JUnit Assert
Exemplul de mai jos demonstrează cum se afirmă o condiție folosind metodele de afirmare JUnit.
Să creăm o clasă de test simplă numită Junit4AssertionTest.java și o clasă de test runner TestRunner.java .
Veți crea câteva variabile și afirmații importante în JUnit.
În acest exemplu, veți executa clasa de testare folosind TestRunner.java
Pasul 1) Să creăm o clasă care să acopere toate metodele importante de afirmare a declarațiilor în junit:
Junit4AssertionTest.java
pachet guru99.junit;import org.junit static.Assert. *;import org.junit.Test;public class Junit4AssertionTest {@Testpublic void testAssert () {// Declarație variabilăString string1 = "Junit";String string2 = "Junit";String string3 = "test";String string4 = "test";Șir de șir5 = nul;int variabilă1 = 1;int variabilă2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// Afirmați afirmațiiassertEquals (șirul1, șirul2);assertSame (șir3, șir4);assertNotSame (șirul1, șirul3);assertNotNull (string1);assertNull (string5);assertTrue (variabila1Pasul 2) Trebuie să creați o clasă de test runner pentru a executa clasa de mai sus:
TestRunner.java
pachet guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;clasă publică TestRunner {public static main main (String [] args) {Rezultat rezultat = JUnitCore.runClasses (Junit4AssertionTest.class);pentru (Eșec de eșec: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Result ==" + result.wasSuccessed ());}}Pasul 3) Să analizăm pas cu pas rezultatele așteptate:
Luați în considerare toate afirmațiile de afirmare una câte una:
- assertEquals (șirul1, șirul2);
Acum comparați șirul1 = "Junit" cu șirul2 = "Junit" cu metoda egală a clasei de obiecte. Înlocuirea metodei assertEquals din metoda java.lang.Object.equals ():
string1.equals (string2) => returnează true
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 string3 = "test" și string4 = "test" înseamnă că atât string3 cât și string4 sunt de același tip, așa că assertSame (string3, string4) va reveni adevărat .
- assertNotSame (șirul1, șirul3);
Funcționalitatea "assertNotSame ()" este de a verifica dacă cele două obiecte nu se referă la același obiect.
Deoarece șirul1 = "Junit" și șirul3 = "test" înseamnă că șirul1 și șirul3 sunt de tipuri diferite, așa că assertNotSame (șirul1, șirul3) va reveni adevărat .
- assertNotNull (string1);
Funcționalitatea "assertNotNull ()" este de a verifica dacă un obiect nu este nul.
Deoarece șirul1 = "Junit", care este o valoare non-nulă, așa că assertNotNull (șirul1) va reveni adevărat .
- assertNull (string5);
Funcționalitatea "assertNull ()" este de a verifica dacă un obiect este nul.
Deoarece șirul5 = nul, care este o valoare nulă, așa că assertNull (șirul5) 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ă că variabila1
adevărat .
- assertArrayEquals (airethematicArarity1, airethematicArarity2);
Funcționalitatea "assertArrayEquals ()" este de a verifica dacă matricea așteptată și matricea rezultată sunt egale. Tipul de matrice ar putea fi int, lung, scurt, char, octet sau java.lang.Object.
Deoarece airethematicArarity1 = {1, 2, 3} și airethematicArarity2 = {1, 2, 3}, care arată ambele matrice sunt egale, astfel încât assertArrayEquals (airethematicArrary1, airethematicArrary2) va reveni adevărat
Deoarece toate cele șapte declarații de afirmare ale clasei Junit4AssertionTest.java returnează adevărat, prin urmare, atunci când executați clasa de afirmare a testului, acesta va returna un test de succes. (vezi rezultatul de mai jos)
Pasul 4) Faceți clic dreapta pe Junit4AssertionTest.java și faceți clic pe runAs-> JUnit. Veți vedea rezultatul prezentat mai jos:
Rezultatul de mai sus arată un rezultat de test reușit, așa cum era de așteptat.
Rezumat:
În acest tutorial, ați învățat toate tipurile importante de metode de afirmare furnizate de JUnit. De asemenea, ați văzut exemplele afirmațiilor. Ceea ce arată că, dacă toate declarațiile de afirmare revin adevărate, atunci testul GUI va întoarce un rezultat adevărat și dacă testul unic eșuează, acesta va returna un rezultat eșuat.