Junit Assert & AssertEquals s primjerom
ล to je Junit Assert?
Assert je metoda korisna u odreฤivanju Pass ili Fail statusa testnog sluฤaja. Assert metode osigurava klasa org.junit.Assert koja proลกiruje klasu java.lang.Object.
Postoje razne vrste tvrdnji kao ลกto su Boolean, Null, Identical itd.
Junit pruลพa klasu pod nazivom Assert, koja pruลพa hrpu metoda tvrdnji korisnih u pisanju testnih sluฤajeva i otkrivanju neuspjeha testa
Assert metode osigurava klasa org.junit.Assert koji se proteลพe java.lang.Object klase.
JUnit Metode tvrdnji
Booleova
Ako ลพelite testirati Booleove uvjete (toฤno ili netoฤno), 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 razliฤiti.
- assertSame(oฤekivano, stvarno), Vratit ฤe se true if oฤekivano == stvarno
- assertNotSame(oฤekivano, stvarno)
Utvrdi jednako
Ako ลพelite testirati jednakost dva objekta, imate sljedeฤe metode
- assertEquals(oฤekivano, stvarno)
Vratit ฤe true ako: oฤekivano.jednako(stvarno) vraฤa true.
Potvrdi polje jednako
Ako ลพelite testirati jednakost nizova, imate sljedeฤe metode kao ลกto je navedeno u nastavku:
- assertArrayEquals(oฤekivano, stvarno)
Gore navedena metoda mora se 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 neuspjeลกnom presudom.
- Neuspjeh (poruka);
Moลพete imati assertion metodu s dodatnim Niz parametar kao prvi parametar. Ovaj ฤe niz biti dodan u poruku o neuspjehu ako tvrdnja ne uspije. Npr 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 (b).
- Ovdje se klasa koja se testira koristi za odreฤivanje prikladne relacije jednakosti.
- Ako klasa ne nadjaฤava jednako () metoda Objekt klase, dobit ฤe zadano ponaลกanje jednako () metoda, odnosno identitet objekta.
If a i b su primitivci kao ลกto su bajt, int, boolean, itd. tada ฤe se uฤiniti sljedeฤe za assertEquals(a,b):
a i b ฤe se pretvoriti u svoj ekvivalentni tip objekta omotaฤa (Bajt, cijeli broj, Booleova, itd.), a zatim a.jednako (b) ฤe se ocjenjivati.
Na primjer: uzmite u obzir dolje navedene nizove s istim vrijednostima, testirajmo ih pomoฤu assertTrue
String obj1="Junit"; String obj2="Junit"; assertEquals(obj1,obj2);
Gornja naredba assert vratit ฤe 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 biste izbjegli probleme s pogreลกkama zaokruลพivanja dok radite usporedbe 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 potvrditi uvjet pomoฤu JUnit assert metode.
Kreirajmo jednostavnu testnu klasu pod nazivom Junit4AssertionTest.java i klasu probnih trkaฤa TestRunner.java.
U njemu ฤete stvoriti nekoliko varijabli i vaลพne iskaze assert JUnit.
U ovom primjeru, izvrลกit ฤete naลกu testnu klasu koristeฤi TestRunner.java
Korak 1) Stvorimo klasu koja pokriva sve vaลพne metode iskaza assert u junit-u:
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 stvoriti klasu pokretaฤa testova za izvrลกavanje gornje klase:
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 rezultat korak po korak:
Razmotrite sve iskaze tvrdnji jednu po jednu:
- assertEquals(niz1,niz2);
Sada usporedite string1=โJunitโ sa string2=โJunitโ s jednakom metodom klase objekta. Zamjena assertEquals metode iz java.lang.Object.equals() metode:
string1.equals(string2)=> vraฤa true
Dakle, assertEquals(string1,string2) ฤe vratiti istinski.
- assertSame(niz3, niz4);
Funkcija โassertSame()โ je provjeriti odnose li se dva objekta na isti objekt.
Buduฤi da string3=โtestโ i string4=โtestโ znaฤi da su i string3 i string4 iste vrste pa ฤe assertSame(string3, string4) vratiti istinski.
- assertNotSame(niz1, niz3);
Funkcija โassertNotSame()โ je provjera da se dva objekta ne odnose na isti objekt.
Buduฤi da string1=โJunitโ i string3=โtestโ znaฤi da su i string1 i string3 razliฤite vrste, tako da ฤe assertNotSame(string1, string3) vratiti istinski.
- assertNotNull(string1);
Funkcija โassertNotNull()โ je provjeriti da objekt nije null.
Buduฤi da je string1= โJunitโ ลกto nije null vrijednost, assertNotNull(string1) ฤe vratiti istinski.
- assertNull(string5);
Funkcija โassertNull()โ sluลพi za provjeru je li objekt null.
Buduฤi da je string5= null ลกto je null vrijednost, assertNull(string5) ฤe vratiti istinski.
- assertTrue(varijabla1
Funkcija โassertTrue()โ sluลพi za provjeru je li uvjet istinit.
Buduฤi da je varijabla1=1 i varijabla2=2, ลกto pokazuje da varijabla1 istinski.
- assertArrayEquals(airethematicArrary1, airethematicArrary2);
Funkcija โassertArrayEquals()โ sluลพi za provjeru jesu li oฤekivani niz i rezultirajuฤi niz jednaki. Vrsta polja 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 polja jednaka, tako ฤe assertArrayEquals(airethematicArrary1, airethematicArrary2) vratiti istinski
Buduฤi da svih sedam tvrdnji o Junit4AssertionTest.java klasa vraฤa true, stoga kada izvrลกite klasu test assert, ona ฤe vratiti uspjeลกan test. (pogledajte rezultat ispod)
Korak 4) Kliknite desnom tipkom miลกa na Junit4AssertionTest.java i kliknite na runAs->JUnit. Vidjet ฤete izlaz kao ลกto je navedeno u nastavku:
Gornji izlaz pokazuje uspjeลกan rezultat testa kao ลกto se i oฤekivalo.
Rezime
U ovom ste vodiฤu nauฤili sve vaลพne vrste metoda tvrdnji koje nudi JUnit. Takoฤer, vidjeli ste primjere assert izjava. ล to pokazuje da ako sve assert izjave vrate true, tada ฤe GUI testa vratiti istinit rezultat, a ako pojedinaฤni test ne uspije, vratit ฤe neuspjeลกan rezultat.

