Junit Assert & AssertEquals s primerom

Kazalo:

Anonim

Kaj je Junit Assert?

Uveljavi je metoda, uporabna pri določanju statusa preizkusnega primera ali neuspešnosti. Metode uveljavljanja zagotavlja razred org.junit.Assert, ki razširja razred java.lang.Object

Obstajajo različne vrste trditev, kot so logična, ničelna, enaka itd.

Junit ponuja razred z imenom Assert, ki ponuja kup metod uveljavljanja, uporabnih pri pisanju testnih primerov in za odkrivanje neuspeha testa

Metode uveljavljanja zagotavlja razred org.junit.Assert, ki razširja razred java.lang.Object .

V tej vadnici boste izvedeli-

  • Metode uveljavljanja JUnit
  • Logično
  • Nič predmet
  • Enako
  • Uveljavi enako
  • Uveljavi matriko enako
  • Sporočilo o napaki
  • JUnit assertEquals
  • Trditve s plavajočo vejico
  • Primer uveljavljanja JUnit

Metode uveljavljanja JUnit

Logično

Če želite preizkusiti logične pogoje (true ali false), lahko uporabite naslednje metode uveljavljanja

  1. assertTrue (stanje)
  2. assertFalse (stanje)

Tu je pogoj logična vrednost.

Nič predmet

Če želite preveriti začetno vrednost predmeta / spremenljivke, imate naslednje metode:

  1. assertNull (objekt)
  2. assertNotNull (objekt)

Tu je objekt objekt Java, npr. AssertNull (dejanski);

Enako

Če želite preveriti, ali so predmeti enaki (tj. Primerjate dve sklici na isti objekt java) ali različni.

  1. assertSame (pričakovano, dejansko), vrne se true, če je pričakovano == dejansko
  2. assertNotSame (pričakovano, dejansko)

Uveljavi enako

Če želite preizkusiti enakost dveh predmetov, imate na voljo naslednje metode

  • assertEquals (pričakovano, dejansko)

Vrnilo se bo true, če: pričakuje.equals (dejansko) vrne true.

Uveljavi matriko enako

Če želite preizkusiti enakost nizov, imate naslednje metode, kot je navedeno spodaj:

  • assertArrayEquals (pričakovano, dejansko)

Zgornjo metodo je treba uporabiti, če imajo nizi enako dolžino, za vsako veljavno vrednost za i lahko preverite, kot je navedeno spodaj:

  • assertEquals (pričakovano [i], dejansko [i])
  • assertArrayEquals (pričakovano [i], dejansko [i])

Sporočilo o napaki

Če želite odstraniti kakršno koli trditev o napaki, imate neuspeh (), ki vedno povzroči razsodbo.

  • Neuspeh (sporočilo);

Kot prvi parameter lahko uporabite metodo uveljavljanja z dodatnim parametrom String . Ta niz bo dodan sporočilu o napaki, če trditev ne uspe. Npr. Neuspeh (sporočilo) lahko zapišemo kot

  • assertEquals (sporočilo, pričakovano, dejansko)

JUnit assertEquals

Imate assertEquals (A, B), ki temelji na enakih () Metoda razreda Object.

  • Tu bo ocenjeno kot a.equals (b).
  • Tu se preizkušeni razred uporablja za določitev ustrezne relacije enakosti.
  • Če razred ne preglasi metode equals () razreda Object , bo dobil privzeto vedenje metode equals () , tj. Identiteto predmeta.

Če sta a in b primitiva, kot sta byte , int , boolean itd., Bo za assertEquals (a, b) storjeno naslednje:

a in b se pretvorita v enakovreden tip predmeta ovojnice ( bajt, celo število , logična vrednost itd.), nato pa se izračunajo a.equals (b) .

Na primer: upoštevajte, da imajo spodnji nizi enake vrednosti, preizkusimo jih z uporabo assertTrue

Niz obj1 = "Junit";Niz obj2 = "Junit";assertEquals (obj1, obj2);

Zgoraj izjava uveljavi bo vrnila true, kot obj1.equals (obj2) vrne true.

Trditve s plavajočo vejico

Če želite primerjati vrste s plavajočo vejico (npr. Dvojno ali s plavajočo vejico ), potrebujete dodaten zahtevani delta delta, da se izognete težavam z zaokroženimi napakami pri primerjanju s plavajočo vejico.

Trditev ocenjuje, kot je navedeno spodaj:

  • Math.abs (pričakovano - dejansko) <= delta

Na primer:

assertEquals (aDoubleValue, anotherDoubleValue, 0,001)

Primer uveljavljanja JUnit

Spodnji primer prikazuje, kako uveljaviti pogoj z metodami uveljavljanja JUnit.

Ustvarimo preprost testni razred z imenom Junit4AssertionTest.java in testni tekaški razred TestRunner.java .

V JUnit boste ustvarili nekaj spremenljivk in pomembnih trditev.

V tem primeru boste izvedli naš testni razred z uporabo TestRunner.java

1. korak) Ustvarimo razred, ki zajema vse pomembne metode uveljavljanja stavkov v junit:

Junit4AssertionTest.java

paket guru99.junit;uvozi statični org.junit.Assert. *;uvoz org.junit.Test;javni razred Junit4AssertionTest {@Testpublic void testAssert () {// Deklaracija spremenljivkeNiz string1 = "Junit";Niz string2 = "Junit";Niz string3 = "test";Niz string4 = "test";Niz string5 = null;int spremenljivka1 = 1;int spremenljivka2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// Uveljavi izjaveassertEquals (niz1, niz2);assertSame (string3, string4);assertNotSame (string1, string3);assertNotNull (string1);assertNull (string5);assertTrue (spremenljivka1 

Korak 2) Za izvedbo nad razredom morate ustvariti preizkusni razred tekača:

TestRunner.java

paket guru99.junit;import org.junit.runner.JUnitCore;uvoz org.junit.runner.Result;import org.junit.runner.notification.Failure;javni razred TestRunner {public static void main (String [] args) {Rezultat rezultata = JUnitCore.runClasses (Junit4AssertionTest.class);for (Napaka neuspeha: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Rezultat ==" + result.wasSuccessful ());}}

Korak 3) Omogočimo analizo pričakovane proizvodnje po korakih:

Upoštevajte vse trditve po vrsti:

  1. assertEquals (niz1, niz2);

Zdaj primerjajte string1 = "Junit" z string2 = "Junit" z enako metodo predmeta. Zamenjava metode assertEquals z metodo java.lang.Object.equals ():

string1.equals (string2) => vrne true

Torej bo assertEquals (string1, string2) vrnil true .

  1. assertSame (string3, string4);

Funkcija "assertSame ()" je preveriti, ali se oba predmeta nanašata na isti predmet.

Ker string3 = "test" in string4 = "test" pomenita, da sta string3 in string4 iste vrste, zato bo assertSame (string3, string4) vrnil true .

  1. assertNotSame (string1, string3);

Funkcija "assertNotSame ()" je preveriti, ali se oba predmeta ne nanašata na isti predmet.

Ker string1 = "Junit" in string3 = "test" pomenita, da sta niz1 in niz3 različnih vrst, zato bo assertNotSame (string1, string3) vrnil true .

  1. assertNotNull (string1);

Funkcija "assertNotNull ()" je preveriti, ali objekt ni nulen.

Ker je string1 = "Junit", ki ni ničelna vrednost, bo assertNotNull (string1) vrnil true .

  1. assertNull (string5);

Funkcija "assertNull ()" je preveriti, ali je objekt ničen.

Ker je string5 = null, kar je ničelna vrednost, bo assertNull (string5) vrnil true .

  1. assertTrue (spremenljivka1

Funkcija "assertTrue ()" je preveriti, ali je pogoj resničen.

Ker je spremenljivka1 = 1 in spremenljivka2 = 2, kar kaže, da je pogoj spremenljivka1 true .

  1. assertArrayEquals (airethematicArrary1, airethematicArrary2);

Funkcija "assertArrayEquals ()" je preveriti, ali sta pričakovana matrika in dobljena matrika enaka. Vrsta polja je lahko int, long, short, char, byte ali java.lang.Object.

Ker sta airethematicArrary1 = {1, 2, 3} in airethematicArrary2 = {1, 2, 3}, kar kaže, da sta obe nizi enaki, bo assertArrayEquals (airethematicArrary1, airethematicArrary2) vrnil true

Ker vseh sedem stavkov uveljavljanja razreda Junit4AssertionTest.java vrne true, bo, ko zaženete testni razred uveljavljanja, vrnil uspešen test. (glej rezultat spodaj)

Korak 4) Z desno miškino tipko kliknite Junit4AssertionTest.java in kliknite runAs-> JUnit. Videli boste rezultate, kot je navedeno spodaj:

Zgoraj je prikazan uspešen rezultat testa, kot je bilo pričakovano.

Povzetek:

V tej vadnici ste se naučili vseh pomembnih vrst trditvenih metod, ki jih ponuja JUnit. Videli ste tudi primere trditev. Kar kaže, da če vsi stavki za uveljavljanje vrnejo true, bo testni GUI vrnil resničen rezultat in če posamezni test ne uspe, bo vrnil neuspešen rezultat.