JUnit Assertions Class sadrži kolekciju statičkih metoda koje vam omogućuju provođenje jediničnih testova. Tvrdnje su jedna od ključnih značajki JUnita. Ova klasa ima više od pedeset različitih metoda. Neki testovi klase Assertions neće uspjeti ako je uvjet istinit, dok drugi neće uspjeti ako je uvjet lažan.

Klasa Assertions također ima mnogo preopterećenih metoda. Svaka metoda tvrdnji ima najmanje dvije preopterećene metode. Otkrijte neke od popularnijih metoda klase Assertions i saznajte kako ih koristiti za izvođenje jediničnih testova.

Metoda assertEquals

Metoda JUnit 5 assertEquals ima preko deset varijacija. Ova metoda je jedna od popularnijih metoda klase Assertions. Jedna varijacija metode assertEquals uzima očekivanu vrijednost i funkciju koju želite procijeniti (stvarna vrijednost). Druga velika varijanta uzima dodatni treći argument. Ovo je poruka o pogrešci koja će se prikazati ako Jedinični test JUnit ne uspijeva.

Preopterećenje metode assertEquals događa se s različitim tipovima podataka. Neke assertEqual metode preopterećenja uzimaju četvrti argument koji se zove delta. Druge verzije zamjenjuju niz greške funkcionalnim sučeljem dobavljača u obliku a

lambda izraz.

AssertionsMethods Java klasa

paket com.program;

javnostrazredaTvrdnjeMetode{
javnoststatičkiintkvadrat(int broj){
povratak broj * broj;
}
}

Gornja Java klasa AssertionsMethods ima jednu metodu pod nazivom square. Metoda kvadrata uzima vrijednost cijelog broja i vraća njezin kvadrat. Za testiranje kvadratne metode i bilo koje buduće metode iz klase AssertionsMethods morat ćete stvoriti JUnit test slučaj.

Testni slučaj AssertionsMethodsTest JUnit

paket com.program;

uvozstatičkiorg.junit.Tvrditi.assertEquals;
uvozstatičkiorg.junit.Jupiter.api.Tvrdnje.*;

uvozorg.junit.Jupiter.api.Test;

razredaAssertionsMethodsTest{
@Test
poništititestSquare(){
assertEquals(25, AssertionMethods.kvadrat(5));
assertEquals (36, AssertionMethods.square (6), "Vaše vrijednosti kvadrata nisu odgovarale.");
assertEquals (49, AssertionMethods.square (7), () ->"Vaše vrijednosti kvadrata nisu odgovarale.");
}
}

Metoda testSquare() koristi tri varijacije assertEquals() za testiranje metode square(). Svaki assertEquals() je uspješan jer sve očekivane vrijednosti odgovaraju stvarnim vrijednostima koje vraća metoda square().

Metoda assertNull

Klasa JUnit Assertions ima točno tri metode assertNull. Svaka od ovih metoda uzima jedan ili više argumenata i utvrđuje je li dati objekt null. Ako dati objekt nije null, test neće uspjeti.

@Test
javnostponištititestStringValue(){
Niz stringValue = ništavan;
assertNull (stringValue);
assertNull (stringValue, "Vaša vrijednost niza nije nula");
assertNull (stringValue, () ->"Vaša vrijednost niza nije nula");
}

Prva metoda assertNull() uzima string objekt i provjerava je li null. Druga metoda assertNull() uzima string objekt i string poruku za prikaz ako test ne uspije. Treća i posljednja metoda assertNull() uzima objekt koji želite procijeniti i funkcionalno sučelje dobavljača.

U gornjem slučaju testa Supplier sučelje djeluje kao cilj dodjele za lambda izraz. Lambda izraz generira poruku o pogrešci ako test ne uspije.

Metoda assertTrue

Metoda assertTrue() ima šest varijacija. Svaka metoda utvrđuje je li dani uvjet istinit. Ako je uvjet assertTrue() netočan, test neće uspjeti.

@Test
poništititestiraj ParneBrojeve(){
int num1 = 10;
int broj2 = 16;
int broj3 = 26;
assertTrue (broj1 < broj2);
assertTrue (broj3 > broj2, "Vaše stanje nije istinito.");
assertTrue (broj1 < broj3, () ->" Vaše stanje nije istinito.");
assertTrue(() -> num1%2 == 0);
assertTrue(() -> num2%2 == 0, "Vaša vrijednost nije paran broj.");
assertTrue(() -> num3%2 == 0, () ->"Vaša vrijednost nije paran broj.");
}

Metoda testEvenNumbers() pokazuje kako koristiti svih šest metoda assertTrue(). Sve gore navedene metode su istinite, stoga se ovaj jedinični test izvodi bez greške ili pogreške.

  • assertTrue (Booleov uvjet): ova metoda uzima Booleov uvjet i potvrđuje je li istinit. Primjer ove metode u gornjem kodu potvrđuje je li prva vrijednost cijelog broja manja od druge.
  • assertTrue (Booleov uvjet, poruka niza): ova metoda uzima Booleov uvjet za testiranje i niz za prikaz ako je lažan.
  • assertTrue (Booleov uvjet, Dobavljač messageSupplier): ova metoda uzima Booleovo i funkcionalno sučelje dobavljača kao lambda izraz. Dobavljač poruke sadrži niz za prikaz ako je Booleov uvjet lažan.
  • assertTrue (BooleanSupplier booleanSupplier): ova metoda uzima BooleanSupplier funkcionalno sučelje, u obliku lambda izraza koji daje vrijednost true ili false. Primjer ove metode u kodu koristi lambda izraz. Testira ostatak prvog cijelog broja podijeljenog s dva kako bi odredio je li paran ili neparan.
  • assertTrue (BooleanSupplier booleanSupplier, String poruka): ova metoda uzima funkcionalno sučelje BooleanSupplier u obliku lambda izraza. Također je potrebna poruka niza za ispis ako BooleanSupier nije istinit.
  • assertTrue (BooleanSupplier booleanSupplier, Supplier messageSupplier): ova metoda zahtijeva funkcionalno sučelje BooleanSupplier za potvrdu. Također je potrebno funkcionalno sučelje dobavljača, što je lambda izraz koji će ispisati vrijednost niza ako test ne uspije.

Metoda assertFalse

Metoda assertFalse() suprotna je metodi assertTrue(). Ova metoda procjenjuje zadani uvjet da vidi je li lažan. Ako je zadani uvjet istinit, test assertFalse() neće uspjeti. Metoda assertFalse() također ima šest varijacija koje prihvaćaju iste argumente kao i njihove assertTrue() pandane.

@Test
poništititestNotEvenNumbers(){
int num1 = 11;
int broj2 = 17;
int broj3 = 27;
assertFalse (broj2 < broj1);
assertFalse (broj2 > broj3, " Vaše stanje nije lažno.");
assertFalse (broj3 < broj1, () ->" Vaše stanje nije lažno.");
assertFalse(() -> num1%2 == 0);
assertFalse(() -> num2%2 == 0, "Vaša vrijednost je paran broj.");
assertFalse(() -> num3%2 == 0, () ->"Vaša vrijednost je paran broj.");
}

Šest metoda assertFalse() u metodi testNotEvenNumbers() sve rezultiraju netočnim, što znači da su testovi assertFalse() uspješni.

Prednosti testiranja jedinica

Jedinično testiranje sastavni je dio procesa razvoja softvera. Veliki softverski projekti propadaju iz raznih razloga, od timova koji rade na njima do razvojnih pristupa.

Svrha jediničnog testiranja je eliminirati kvar softvera pružanjem ranog otkrivanja pogrešaka. To zahtijeva od timova da razviju jasne specifikacije, poboljšaju dizajn softvera putem dokumentacije o pogreškama i pruže podršku za održavanje softvera.

Jedinično testiranje nije jedini pristup testiranju softvera koji biste trebali primijeniti u svom životnom ciklusu razvoja, samo je vrlo dobro mjesto za početak.