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

  1. assertTrue(uvjet)
  2. assertFalse(uvjet)

Ovdje je uvjet Booleova vrijednost.

Nulti objekt

Ako ลพelite provjeriti poฤetnu vrijednost objekta/varijable, imate sljedeฤ‡e metode:

  1. assertNull(objekt)
  2. 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.

  1. assertSame(oฤekivano, stvarno), Vratit ฤ‡e se true if oฤekivano == stvarno
  2. 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:

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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:

JUnit Primjer tvrdnje

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.

Saลพmite ovu objavu uz: