Razred trditev JUnit vsebuje zbirko statičnih metod, ki vam omogočajo izvajanje testov enote. Trditve so ena od osrednjih funkcij JUnita. Ta razred ima več kot petdeset različnih metod. Nekateri preizkusi razreda trditev ne bodo uspeli, če je pogoj resničen, medtem ko bodo drugi neuspešni, če je pogoj napačen.

Razred Trditve ima tudi veliko preobremenjenih metod. Vsaka metoda trditve ima vsaj dve preobremenjeni metodi. Odkrijte nekaj bolj priljubljenih metod razreda Assertions in ugotovite, kako jih uporabiti za izvajanje testov enot.

Metoda assertEquals

Metoda JUnit 5 assertEquals ima več kot deset različic. Ta metoda je ena izmed bolj priljubljenih metod razreda Assertions. Ena različica metode assertEquals sprejme pričakovano vrednost in funkcijo, ki jo želite ovrednotiti (dejanska vrednost). Druga večja različica zahteva dodatni tretji argument. To je sporočilo o napaki, ki se prikaže, če Test enote JUnit ne uspe.

Preobremenitev metode assertEquals se zgodi z različnimi vrstami podatkov. Nekatere preobremenitvene metode assertEquals sprejmejo četrti argument, imenovan delta. Druge različice zamenjajo niz napak s funkcionalnim vmesnikom dobavitelja v obliki a

instagram viewer
lambda izraz.

Razred Java AssertionsMethods

paket com.program;

javnostirazredAssertionsMethods{
javnostistatičnaintkvadrat(int št){
vrnitev num * num;
}
}

Zgornji razred AssertionsMethods Java ima eno samo metodo, imenovano square. Metoda kvadrata sprejme celoštevilsko vrednost in vrne njen kvadrat. Če želite preizkusiti kvadratno metodo in katero koli prihodnjo metodo iz razreda AssertionsMethods, boste morali ustvariti testni primer JUnit.

Testni primer AssertionsMethodsTest JUnit

paket com.program;

uvozstatičnaorg.junit.Trdi.assertEquals;
uvozstatičnaorg.junit.jupiter.api.Trditve.*;

uvozorg.junit.jupiter.api.Test;

razredAssertionsMethodsTest{
@Test
prazninatestSquare(){
assertEquals(25, AssertionMethods.kvadrat(5));
assertEquals (36, AssertionMethods.square (6), "Vaše kvadratne vrednosti se niso ujemale.");
assertEquals (49, AssertionMethods.square (7), () ->"Vaše kvadratne vrednosti se niso ujemale.");
}
}

Metoda testSquare() uporablja tri različice assertEquals() za testiranje metode square(). Vsak assertEquals() je uspešen, saj se vse pričakovane vrednosti ujemajo z dejanskimi vrednostmi, ki jih vrne metoda square().

Metoda assertNull

Razred JUnit Assertions ima točno tri metode assertNull. Vsaka od teh metod sprejme enega ali več argumentov in potrdi, ali je dani objekt nič. Če dani objekt ni nič, potem test ne bo uspel.

@Test
javnostiprazninatestStringValue(){
Vrvica stringValue = nič;
assertNull (stringValue);
assertNull (stringValue, "Vrednost vašega niza ni ničelna");
assertNull (stringValue, () ->"Vrednost vašega niza ni ničelna");
}

Prva metoda assertNull() vzame objekt niza in preveri, ali je nič. Druga metoda assertNull() sprejme objekt niza in sporočilo niza za prikaz, če preizkus ne uspe. Tretja in zadnja metoda assertNull() vzame predmet, ki ga želite ovrednotiti, in funkcionalni vmesnik dobavitelja.

V zgornjem preskusnem primeru vmesnik dobavitelja deluje kot cilj dodelitve za lambda izraz. Lambda izraz ustvari sporočilo o napaki, če preizkus ne uspe.

Metoda assertTrue

Metoda assertTrue() ima šest različic. Vsaka metoda potrdi, ali je dani pogoj resničen. Če je pogoj assertTrue() napačen, preizkus ne bo uspel.

@Test
prazninatestEvenNumbers(){
int num1 = 10;
int num2 = 16;
int num3 = 26;
assertTrue (št.1 < številka2);
assertTrue (št.3 > num2, "Vaše stanje ni res.");
assertTrue (št.1 < št.3, () ->" Vaše stanje ni res.");
assertTrue(() -> num1%2 == 0);
assertTrue(() -> num2%2 == 0, "Vaša vrednost ni sodo število.");
assertTrue(() -> num3%2 == 0, () ->"Vaša vrednost ni sodo število.");
}

Metoda testEvenNumbers() prikazuje, kako uporabiti vseh šest metod assertTrue(). Vse zgornje metode so pravilne, zato se ta test enote izvede brez napak ali napak.

  • assertTrue (logični pogoj): ta metoda sprejme logični pogoj in potrdi, ali je resničen. Primer te metode v zgornji kodi potrdi, ali je prva cela vrednost manjša od druge.
  • assertTrue (logični pogoj, sporočilo niza): ta metoda vzame logični pogoj za preizkus in niz za prikaz, če je napačen.
  • assertTrue (logični pogoj, dobavitelj messageSupplier): ta metoda vzame logični in funkcionalni vmesnik dobavitelja kot lambda izraz. Dobavitelj sporočila vsebuje niz za prikaz, če je logični pogoj napačen.
  • assertTrue (BooleanSupplier booleanSupplier): ta metoda vzame funkcionalni vmesnik BooleanSupplier v obliki lambda izraza, ki se oceni kot true ali false. Primer te metode v kodi uporablja lambda izraz. Preizkusi preostanek prvega celega števila, deljenega z dva, da ugotovi, ali je sodo ali liho.
  • assertTrue (BooleanSupplier booleanSupplier, String message): ta metoda vzame funkcijski vmesnik BooleanSupplier v obliki lambda izraza. Za tiskanje je potrebno tudi sporočilo niza, če BooleanSupier ni resničen.
  • assertTrue (BooleanSupplier booleanSupplier, Supplier messageSupplier): ta metoda uporablja funkcionalni vmesnik BooleanSupplier za uveljavitev. Potrebuje tudi funkcijski vmesnik dobavitelja, ki je lambda izraz, ki bo natisnil vrednost niza, če preizkus ne uspe.

Metoda assertFalse

Metoda assertFalse() je nasprotna metodi assertTrue(). Ta metoda ovrednoti dani pogoj, da ugotovi, ali je napačen. Če je dani pogoj resničen, potem test assertFalse() ne bo uspel. Metoda assertFalse() ima tudi šest različic, ki sprejemajo iste argumente kot njihove protipostavke assertTrue().

@Test
prazninatestNotEvenNumbers(){
int num1 = 11;
int num2 = 17;
int num3 = 27;
assertFalse (št.2 < št.1);
assertFalse (št.2 > num3, " Vaše stanje ni lažno.");
assertFalse (št.3 < št.1, () ->" Vaše stanje ni lažno.");
assertFalse(() -> num1%2 == 0);
assertFalse(() -> num2%2 == 0, "Vaša vrednost je sodo število.");
assertFalse(() -> num3%2 == 0, () ->"Vaša vrednost je sodo število.");
}

Vseh šest metod assertFalse() v metodi testNotEvenNumbers() daje vrednost false, kar pomeni, da so preizkusi assertFalse() uspešni.

Prednosti testiranja enot

Testiranje enot je sestavni del procesa razvoja programske opreme. Veliki programski projekti propadejo zaradi različnih razlogov, od ekip, ki delajo na njih, do razvojnih pristopov.

Namen testiranja enote je odpraviti okvaro programske opreme z zagotavljanjem zgodnjega odkrivanja napak. To zahteva, da skupine razvijejo jasne specifikacije, izboljšajo zasnovo programske opreme z dokumentacijo o napakah in zagotovijo podporo za vzdrževanje programske opreme.

Preizkušanje enot ni edini pristop testiranja programske opreme, ki bi ga morali uporabiti v svojem življenjskem ciklu razvoja, je le zelo dober začetek.