Junit Assert & AssertEquals s príkladom

Obsah:

Anonim

Čo je Junit Assert?

Assert je metóda užitočná pri určovaní stavu Pass alebo Fail testovacieho prípadu. Metódy Assert poskytuje trieda org.junit.Assert, ktorá rozširuje triedu java.lang.Object.

Existujú rôzne typy tvrdení ako Boolean, Null, Identical atď.

Junit poskytuje triedu s názvom Assert, ktorá poskytuje množstvo metód tvrdenia užitočných pri písaní testovacích prípadov a zisťovaní zlyhania testu

Metódy presadzovania poskytuje trieda org.junit.Assert, ktorá rozširuje triedu java.lang.Object .

V tomto návode sa naučíte

  • Metódy JUnit Assert
  • Boolovský
  • Nulový objekt
  • Identické
  • Presadzovať rovné
  • Assert Array Equals
  • Správa o zlyhaní
  • JUnit assertEquals
  • Tvrdenia s pohyblivou rádovou čiarkou
  • Príklad uplatnenia JUnit

Metódy JUnit Assert

Boolovský

Ak chcete testovať logické podmienky (pravdivé alebo nepravdivé), môžete použiť nasledujúce metódy tvrdenia

  1. assertTrue (podmienka)
  2. assertFalse (podmienka)

Tu je podmienkou logická hodnota.

Nulový objekt

Ak chcete skontrolovať začiatočnú hodnotu objektu / premennej, máte k dispozícii nasledujúce metódy:

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

Objekt je tu objekt Java, napríklad assertNull (skutočný);

Identické

Ak chcete skontrolovať, či sú objekty identické (tj. Porovnávať dva odkazy na rovnaký objekt Java) alebo odlišné.

  1. assertSame (očakávaný, skutočný), vráti true, ak sa očakáva == skutočný
  2. assertNotSame (očakávané, skutočné)

Presadzovať rovné

Ak chcete otestovať rovnosť dvoch objektov, máte k dispozícii nasledujúce metódy

  • assertEquals (očakávaný, skutočný)

Vráti hodnotu true, ak: expect.equals (actual) vráti hodnotu true.

Assert Array Equals

Ak chcete otestovať rovnosť polí, máte k dispozícii nasledujúce metódy:

  • assertArrayEquals (očakávaný, skutočný)

Ak majú polia rovnakú dĺžku, musí sa použiť vyššie uvedená metóda, pre každú platnú hodnotu pre i ju môžete skontrolovať, ako je uvedené nižšie:

  • assertEquals (očakávané [i], skutočné [i])
  • assertArrayEquals (očakávané [i], skutočné [i])

Správa o zlyhaní

Ak chcete hodiť akúkoľvek chybu tvrdenia, máte zlyhanie (), ktorého výsledkom je vždy verdikt zlyhania.

  • Fail (správa);

Ako prvý parameter môžete mať metódu tvrdenia s ďalším parametrom String . Tento reťazec bude pripojený k správe o zlyhaní, ak sa tvrdenie nepodarí. Napr. Poruchu (správu) možno napísať ako

  • assertEquals (správa, očakávaná, skutočná)

JUnit assertEquals

Máte assertEquals (a, b), ktoré sa spoliehajú na metódu equals () triedy Object.

  • Tu sa vyhodnotí ako a.equals (b).
  • Tu sa testovaná trieda používa na určenie vhodného vzťahu rovnosti.
  • Ak trieda neprepíše metódu equals () triedy Object , získa predvolené správanie metódy equals () , tj identitu objektu.

Ak sú a a b primitívne prvky, ako napríklad byte , int , boolean atď., Pre assertEquals (a, b) sa urobí toto:

a a b sa prevedú na ekvivalentný typ obalového objektu ( Byte, Integer , Boolean atď.) a potom sa vyhodnotí a.equals (b) .

Napríklad: Zvážte, že nižšie uvedené reťazce majú rovnaké hodnoty, otestujme to pomocou assertTrue

Reťazec obj1 = "Junit";Reťazec obj2 = "Junit";assertEquals (obj1, obj2);

Výrok nad tvrdením vráti hodnotu true, keď obj1.equals (obj2) vráti hodnotu true.

Tvrdenia s pohyblivou rádovou čiarkou

Pokiaľ chcete porovnať plávajúcou čiarkou typy (napríklad dvojité alebo float ), budete potrebovať ďalšie požadovaný parameter delta k problémom vyhnúť sa s zaokrúhlenia chyby a pritom plávajúce čiarkou porovnanie.

Hodnotené tvrdenie je uvedené nižšie:

  • Math.abs (očakávané - skutočné) <= delta

Napríklad:

assertEquals (aDoubleValue, anotherDoubleValue, 0,001)

Príklad uplatnenia JUnit

Nasledujúci príklad demonštruje, ako uplatniť podmienku pomocou metód potvrdenia JUnit.

Vytvorme jednoduchú testovaciu triedu s názvom Junit4AssertionTest.java a triedu testovacieho bežca TestRunner.java .

V JUnit vytvoríte niekoľko premenných a dôležité tvrdenia.

V tomto príklade vykonáte našu testovaciu triedu pomocou súboru TestRunner.java

Krok 1) Umožňuje vytvoriť triedu zahŕňajúcu všetky dôležité metódy príkazu assert v junite:

Junit4AssertionTest.java

balíček guru99.junit;importovať statický org.junit.Assert. *;import org.junit.Test;verejná trieda Junit4AssertionTest {@Testpublic void testAssert () {// Deklarácia premennejReťazec string1 = "Junit";Reťazec string2 = "Junit";Reťazec string3 = "test";Reťazec string4 = "test";Reťazec string5 = null;int premenná1 = 1;int premenná2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// Uplatniť výrokyassertEquals (string1, string2);assertSame (string3, string4);assertNotSame (string1, string3);assertNotNull (string1);assertNull (string5);assertTrue (premenná1 

Krok 2) Musíte vytvoriť triedu testovacieho bežca na vykonanie nad triedou:

TestRunner.java

balíček guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;verejná trieda TestRunner {public static void main (String [] args) {Výsledok = JUnitCore.runClasses (Junit4AssertionTest.class);pre (Zlyhanie zlyhania: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Výsledok ==" + result.wasSuccessful ());}}

Krok 3) Umožňuje analyzovať očakávaný výstup krok za krokom:

Zvážte postupne všetky tvrdenia:

  1. assertEquals (string1, string2);

Teraz porovnajte string1 = "Junit" s string2 = "Junit" s rovnocennou metódou triedy objektov. Nahradenie metódy assertEquals z metódy java.lang.Object.equals ():

string1.equals (string2) => vráti true

Takže assertEquals (string1, string2) vráti true .

  1. assertSame (string3, string4);

Funkcia „assertSame ()“ slúži na kontrolu toho, či dva objekty odkazujú na ten istý objekt.

Pretože string3 = "test" a string4 = "test" znamená, že reťazec3 aj reťazec4 sú rovnakého typu, takže assertSame (reťazec3, reťazec4) vráti hodnotu true .

  1. assertNotSame (string1, string3);

Funkciou „assertNotSame ()“ je skontrolovať, či tieto dva objekty neodkazujú na rovnaký objekt.

Pretože string1 = "Junit" a string3 = "test" znamená, že reťazec1 aj reťazec3 sú rôznych typov, takže hodnota assertNotSame (reťazec1, reťazec3) vráti hodnotu true .

  1. assertNotNull (string1);

Funkciou „assertNotNull ()“ je skontrolovať, či objekt nemá hodnotu null.

Pretože string1 = "Junit", čo je nenulová hodnota, vráti assertNotNull (string1) hodnotu true .

  1. assertNull (string5);

Funkciou „assertNull ()“ je skontrolovať, či je objekt nulový.

Pretože string5 = null, čo je nulová hodnota, tak assertNull (string5) vráti true .

  1. assertTrue (premenná1

Funkcia „assertTrue ()“ slúži na kontrolu splnenia podmienky.

Pretože premenná1 = 1 a premenná2 = 2, ktoré ukazujú, že premenná1 true .

  1. assertArrayEquals (airethematicArrary1, airethematicArrary2);

Funkciou „assertArrayEquals ()“ je skontrolovať, či sú očakávané pole a výsledné pole rovnaké. Typ poľa môže byť int, long, short, char, byte alebo java.lang.Object.

Vzhľadom k tomu, airethematicArrary1 = {1, 2, 3} a airethematicArrary2 = {1, 2, 3}, ktoré ukazuje, ako sú polia sú rovnaké, takže assertArrayEquals (airethematicArrary1, airethematicArrary2) vráti pravda

Pretože všetkých sedem príkazov assert triedy Junit4AssertionTest.java vracia hodnotu true, preto keď vykonáte triedu assert testu, vráti úspešný test. (pozri výstup nižšie)

Krok 4) Kliknite pravým tlačidlom myši na Junit4AssertionTest.java a kliknite na runAs-> JUnit. Uvidíte výstup uvedený nižšie:

Vyššie uvedený výstup zobrazuje očakávaný úspešný výsledok testu.

Zhrnutie:

V tomto tutoriáli ste sa naučili všetky dôležité typy metód presadzovania, ktoré poskytuje JUnit. Tiež ste videli príklady tvrdenia. Čo ukazuje, že ak všetky tvrdenia assert vrátia hodnotu true, potom testovacie grafické rozhranie vráti skutočný výsledok a ak jeden test zlyhá, vráti výsledok, ktorý zlyhal.