Trieda JUnit Assertions obsahuje kolekciu statických metód, ktoré vám umožňujú vykonávať testy jednotiek. Tvrdenia sú jednou zo základných funkcií JUnit. Táto trieda má viac ako päťdesiat rôznych metód. Niektoré testy triedy Assertions zlyhajú, ak je podmienka pravdivá, zatiaľ čo iné zlyhajú, ak je podmienka nepravdivá.

Trieda Assertions má tiež veľa preťažených metód. Každá metóda tvrdenia má najmenej dve preťažené metódy. Objavte niektoré z najpopulárnejších metód triedy Assertions a zistite, ako ich používať na vykonávanie jednotkových testov.

Metóda claimEquals

Metóda JUnit 5 ClaimEquals má viac ako desať variácií. Táto metóda je jednou z najpopulárnejších metód triedy Assertions. Jedna variácia metódy claimEquals má očakávanú hodnotu a funkciu, ktorú chcete vyhodnotiť (skutočnú hodnotu). Druhý hlavný variant má ďalší tretí argument. Toto je chybové hlásenie, ktoré sa zobrazí, ak je Test jednotky JUnit zlyhá.

Preťaženie metódy claimEquals sa deje s rôznymi typmi údajov. Niektoré metódy preťaženiasaderEquals používajú štvrtý argument nazývaný delta. Ostatné verzie nahrádzajú poruchový reťazec funkčným rozhraním dodávateľa vo forme a

instagram viewer
lambda výraz.

AssertionsMethods Java Trieda

balík com.program;

verejnostitriedaMetódy tvrdení{
verejnostistatickéintnámestie(int num){
vrátiť num * num;
}
}

Vyššie uvedená trieda AssertionsMethods Java má jedinú metódu s názvom square. Metóda štvorca nadobudne celočíselnú hodnotu a vráti svoju druhú mocninu. Ak chcete otestovať štvorcovú metódu a akúkoľvek budúcu metódu z triedy AssertionsMethods, budete musieť vytvoriť testovací prípad JUnit.

Testovací prípad AssertionsMethodsTest JUnit

balík com.program;

importovaťstatickéorg.junit.Tvrdiť.tvrdiť sa rovná;
importovaťstatickéorg.junit.jupiter.api.Tvrdenia.*;

importovaťorg.junit.jupiter.api.Test;

triedaTvrdenia MetódyTest{
@Test
neplatnétestSquare(){
tvrdiť Rovná sa(25, AssertionMethods.námestie(5));
claimEquals (36, AssertionMethods.square (6), "Vaše štvorcové hodnoty sa nezhodujú.");
claimEquals (49, AssertionMethods.square (7), () ->"Vaše štvorcové hodnoty sa nezhodujú.");
}
}

Metóda testSquare() používa na testovanie metódy square() tri variácie claimEquals(). Každá funkcia ClaimEquals() je úspešná, pretože všetky očakávané hodnoty sa zhodujú so skutočnými hodnotami vrátenými metódou square().

Metóda claimNull

Trieda JUnit Assertions má presne tri metódy assistNull. Každá z týchto metód má jeden alebo viac argumentov a tvrdí, či je daný objekt nulový. Ak daný objekt nie je nulový, test zlyhá.

@Test
verejnostineplatnétestStringValue(){
Reťazec stringValue = nulový;
ssesNull (stringValue);
assetNull (stringValue, "Hodnota vášho reťazca nie je null");
assetNull (stringValue, () ->"Hodnota vášho reťazca nie je null");
}

Prvá metódassesNull() berie objekt typu reťazec a kontroluje, či je null. Druhá metóda claimNull() berie objekt typu reťazec a správu o reťazci, ktoré sa zobrazia, ak test zlyhá. Tretia a posledná metóda claimNull() berie objekt, ktorý chcete vyhodnotiť, a funkčné rozhranie dodávateľa.

V testovacom prípade vyššie rozhranie dodávateľa funguje ako cieľ priradenia pre výraz lambda. Ak test zlyhá, výraz lambda vygeneruje chybové hlásenie.

Metóda tvrdiťPravda

Metóda ClaimTrue() má šesť variácií. Každá metóda tvrdí, či je daná podmienka pravdivá. Ak je podmienka claimTrue() nepravdivá, test zlyhá.

@Test
neplatnétestEvenNumbers(){
int číslo1 = 10;
int číslo2 = 16;
int číslo 3 = 26;
tvrdiťPravda (číslo 1 < číslo 2);
tvrdiťPravda (č.3 > číslo 2, "Vaša podmienka nie je pravdivá.");
tvrdiťPravda (číslo 1 < číslo 3, () ->" Vaša podmienka nie je pravdivá.");
claimTrue(() -> num1%2 == 0);
claimTrue(() -> num2%2 == 0, "Vaša hodnota nie je párne číslo.");
claimTrue(() -> num3%2 == 0, () ->"Vaša hodnota nie je párne číslo.");
}

Metóda testEvenNumbers() demonštruje, ako používať všetkých šesť metód sustainTrue(). Všetky vyššie uvedené metódy sú pravdivé, preto sa tento test jednotky vykoná bez zlyhania alebo chyby.

  • claimTrue (Boolovská podmienka): táto metóda používa boolovskú podmienku a tvrdí, ak je pravdivá. Príklad tejto metódy v kóde vyššie tvrdí, že prvé celé číslo je menšie ako druhé.
  • asseTrue (logická podmienka, správa String): táto metóda používa na testovanie boolovskú podmienku a na zobrazenie reťazca, ak je nepravda.
  • claimTrue (Boolovská podmienka, Dodávateľ messageSupplier): táto metóda používa boolovské a dodávateľské funkčné rozhranie ako výraz lambda. Dodávateľ správy obsahuje reťazec, ktorý sa zobrazí, ak je logická podmienka nepravdivá.
  • sustainTrue (BooleanSupplier booleanSupplier): táto metóda používa funkčné rozhranie BooleanSupplier vo forme výrazu lambda, ktorý sa vyhodnotí ako pravda alebo nepravda. Príklad tejto metódy v kóde používa výraz lambda. Testuje zvyšok prvého celého čísla deleného dvoma, aby určil, či je párne alebo nepárne.
  • claimTrue (BooleanSupplier booleanSupplier, String message): táto metóda využíva funkčné rozhranie BooleanSupplier vo forme výrazu lambda. Ak BooleanSupier nie je pravdivý, vytlačí sa aj reťazcová správa.
  • claimTrue (BooleanSupplier booleanSupplier, Dodávateľ messageSupplier): táto metóda využíva funkčné rozhranie BooleanSupplier, aby sa uplatnila. Vyžaduje tiež funkčné rozhranie dodávateľa, čo je výraz lambda, ktorý vypíše hodnotu reťazca, ak test zlyhá.

Metóda claimFalse

MetódaasseFalse() je opakom metódyassetTrue(). Táto metóda vyhodnocuje danú podmienku, aby zistila, či nie je nepravdivá. Ak je daná podmienka pravdivá, potom testassesFalse() zlyhá. Metóda claimFalse() má tiež šesť variácií, ktoré akceptujú rovnaké argumenty ako ich náprotivky asertTrue().

@Test
neplatnétestNotEvenNumbers(){
int číslo1 = 11;
int číslo2 = 17;
int číslo 3 = 27;
tvrdenieFalse (č.2 < číslo1);
tvrdenieFalse (č.2 > číslo 3, " Vaša podmienka nie je falošná.");
tvrdenieFalse (č.3 < číslo1, () ->" Vaša podmienka nie je falošná.");
tvrdenieFalse(() -> num1%2 == 0);
tvrdenieFalse(() -> num2%2 == 0, "Vaša hodnota je párne číslo.");
tvrdenieFalse(() -> num3%2 == 0, () ->"Vaša hodnota je párne číslo.");
}

Všetkých šesť metód sustainFalse() v metóde testNotEvenNumbers() má za následok nepravdu, čo znamená, že testy sustainFalse() sú úspešné.

Výhody testovania jednotiek

Unit testovanie je neoddeliteľnou súčasťou procesu vývoja softvéru. Veľké softvérové ​​projekty zlyhávajú z rôznych dôvodov, od tímov, ktoré na nich pracujú, až po vývojové prístupy.

Účelom testovania jednotiek je eliminovať zlyhanie softvéru poskytnutím včasnej detekcie chýb. To si vyžaduje, aby tímy vypracovali jasné špecifikácie, zlepšili návrh softvéru prostredníctvom dokumentácie o chybách a poskytli podporu pri údržbe softvéru.

Testovanie jednotiek nie je jediný prístup k testovaniu softvéru, ktorý by ste mali použiť vo svojom životnom cykle vývoja, je to len veľmi dobré miesto, kde začať.