Junit Assert & AssertEquals s příkladem

Obsah:

Anonim

Co je Junit Assert?

Assert je metoda užitečná při určování stavu Pass nebo Fail testovacího případu, metody Assert poskytuje třída org.junit.Assert, která rozšiřuje třídu java.lang.Object.

Existují různé typy tvrzení jako Boolean, Null, Identical atd.

Junit poskytuje třídu s názvem Assert, která poskytuje spoustu metod tvrzení užitečných při psaní testovacích případů a detekci selhání testu

Assert metody poskytuje třída org.junit.Assert, která rozšiřuje třídu java.lang.Object .

V tomto výukovém programu se naučíte

  • Metody JUnit Assert
  • Booleovský
  • Nulový objekt
  • Totožné
  • Uplatňovat se rovná
  • Assert Array Equals
  • Zpráva o selhání
  • JUnit assertEquals
  • Plovoucí desetinná čárka
  • Příklad uplatnění JUnit

Metody JUnit Assert

Booleovský

Pokud chcete otestovat booleovské podmínky (true nebo false), můžete použít následující metody assert

  1. assertTrue (podmínka)
  2. assertFalse (podmínka)

Zde je podmínkou logická hodnota.

Nulový objekt

Pokud chcete zkontrolovat počáteční hodnotu objektu / proměnné, máte následující metody:

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

Zde je objekt Java, např. AssertNull (aktuální);

Totožné

Pokud chcete zkontrolovat, zda jsou objekty identické (tj. Porovnání dvou odkazů na stejný objekt Java), nebo odlišné.

  1. assertSame (očekávaný, skutečný), vrátí true, pokud očekávaný == skutečný
  2. assertNotSame (očekávané, skutečné)

Uplatňovat se rovná

Pokud chcete otestovat rovnost dvou objektů, máte následující metody

  • assertEquals (očekávané, skutečné)

Vrátí hodnotu true, pokud: expect.equals (skutečná) vrátí hodnotu true.

Assert Array Equals

Pokud chcete otestovat rovnost polí, máte následující metody, jak je uvedeno níže:

  • assertArrayEquals (očekávané, skutečné)

Pokud mají pole stejnou délku, musí se použít výše uvedená metoda, pro každou platnou hodnotu pro i ji můžete zkontrolovat, jak je uvedeno níže:

  • assertEquals (očekávané [i], skutečné [i])
  • assertArrayEquals (očekávané [i], skutečné [i])

Zpráva o selhání

Pokud chcete hodit jakoukoli chybu tvrzení, máte fail () , jehož výsledkem je vždy verdikt selhání.

  • Selhání (zpráva);

Můžete mít metodu tvrzení s dalším parametrem String jako prvním parametrem. Tento řetězec bude přidán do zprávy o selhání, pokud se tvrzení nezdaří. Např. Selhání (zprávu) lze zapsat jako

  • assertEquals (zpráva, očekávaná, skutečná)

JUnit assertEquals

Máte assertEquals (a, b), který se spoléhá na metodu equals () třídy Object.

  • Zde bude vyhodnocen jako a.equals (b).
  • Zde se testovaná třída používá k určení vhodného vztahu rovnosti.
  • Pokud třída nepřepíše metodu equals () třídy Object , získá výchozí chování metody equals () , tj. Identitu objektu.

Pokud jsou a a b primitiva, jako je byte , int , boolean atd., Bude pro assertEquals (a, b) provedeno toto:

a a b budou převedeny na jejich ekvivalentní typ obalového objektu ( Byte, Integer , Boolean atd.) a poté bude vyhodnoceno a.equals (b) .

Příklad: Zvažte níže uvedené řetězce, které mají stejné hodnoty, otestujme to pomocí assertTrue

Řetězec obj1 = "Junit";Řetězec obj2 = "Junit";assertEquals (obj1, obj2);

Výrok výše uvedeného tvrzení vrátí hodnotu true, protože obj1.equals (obj2) vrátí hodnotu true.

Plovoucí desetinná čárka

Pokud chcete porovnat typy s plovoucí desetinnou čárkou (např. Double nebo float ), potřebujete další deltu požadovaných parametrů, abyste se vyhnuli problémům s chybami zaokrouhlování při porovnávání s plovoucí desetinnou čárkou.

Tvrzení je vyhodnoceno níže:

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

Například:

assertEquals (aDoubleValue, anotherDoubleValue, 0,001)

Příklad uplatnění JUnit

Níže uvedený příklad ukazuje, jak prosadit podmínku pomocí metod prosazení JUnit.

Pojďme vytvořit jednoduchou testovací třídu s názvem Junit4AssertionTest.java a třídu testovacího běžce TestRunner.java .

V JUnit vytvoříte několik proměnných a důležitých tvrzení.

V tomto příkladu provedete naši testovací třídu pomocí TestRunner.java

Krok 1) Pojďme vytvořit třídu pokrývající všechny důležité metody příkazu assert v junit:

Junit4AssertionTest.java

balíček guru99.junit;importovat statický org.junit.Assert. *;import org.junit.Test;veřejná třída Junit4AssertionTest {@Testpublic void testAssert () {// Proměnná deklaraceŘetězec string1 = "Junit";Řetězec string2 = "Junit";Řetězec string3 = "test";Řetězec string4 = "test";Řetězec řetězce5 = null;int proměnná 1 = 1;int proměnná2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// Potvrzení výrokůassertEquals (řetězec1, řetězec2);assertSame (string3, string4);assertNotSame (string1, string3);assertNotNull (string1);assertNull (string5);assertTrue (proměnná1 

Krok 2) Musíte provést třídu testovacího běžce pro provedení výše uvedené třídy:

TestRunner.java

balíček guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;veřejná třída TestRunner {public static void main (String [] args) {Výsledek = JUnitCore.runClasses (Junit4AssertionTest.class);pro (Selhání selhání: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Result ==" + result.wasSuccessful ());}}

Krok 3) Umožňuje analyzovat očekávaný výstup krok za krokem:

Zvažte postupně všechny tvrzení:

  1. assertEquals (řetězec1, řetězec2);

Nyní porovnejte řetězec1 = "Junit" s řetězcem2 = "Junit" s rovnocennou metodou třídy objektů. Výměna metody assertEquals z metody java.lang.Object.equals ():

string1.equals (string2) => vrací true

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

  1. assertSame (string3, string4);

Funkcí „assertSame ()“ je zkontrolovat, zda dva objekty odkazují na stejný objekt.

Protože string3 = "test" a string4 = "test" znamená, že řetězec3 i řetězec4 jsou stejného typu, takže assertSame (řetězec3, řetězec4) vrátí hodnotu true .

  1. assertNotSame (string1, string3);

Funkcí „assertNotSame ()“ je zkontrolovat, zda tyto dva objekty neodkazují na stejný objekt.

Protože string1 = "Junit" a string3 = "test" znamená, že řetězec1 i řetězec3 jsou různých typů, takže assertNotSame (řetězec1, řetězec3) vrátí hodnotu true .

  1. assertNotNull (string1);

Funkcí „assertNotNull ()“ je zkontrolovat, zda objekt nemá hodnotu null.

Vzhledem k tomu, string1 = "Junit", což je nenulová hodnota, takže assertNotNull (string1) vrátí true .

  1. assertNull (string5);

Funkce „assertNull ()“ slouží ke kontrole, zda je objekt nulový.

Vzhledem k tomu, string5 = null, což je hodnota null, takže assertNull (string5) vrátí true .

  1. assertTrue (proměnná1

Funkce „assertTrue ()“ slouží ke kontrole, zda je podmínka splněna.

Protože proměnná1 = 1 a proměnná2 = 2, což ukazuje, že podmínka proměnná1 true .

  1. assertArrayEquals (airethematicArrary1, airethematicArrary2);

Funkce „assertArrayEquals ()“ slouží ke kontrole, zda jsou očekávané pole a výsledné pole stejné. Typ pole může být int, long, short, char, byte nebo java.lang.Object.

Protože airethematicArrary1 = {1, 2, 3} a airethematicArrary2 = {1, 2, 3}, které ukazují, že obě pole jsou stejná, tak assertArrayEquals (airethematicArrary1, airethematicArrary2) vrátí true

Vzhledem k tomu, že všech sedm příkazů assert třídy Junit4AssertionTest.java vrací hodnotu true, proto při spuštění třídy testu assert vrátí úspěšný test. (viz výstup níže)

Krok 4) Klikněte pravým tlačítkem na Junit4AssertionTest.java a klikněte na runAs-> JUnit. Uvidíte výstup uvedený níže:

Výše uvedený výstup ukazuje očekávaný úspěšný výsledek testu.

Souhrn:

V tomto kurzu jste se seznámili se všemi důležitými typy metod tvrzení, které poskytuje JUnit. Také jste viděli příklady tvrzení. Což ukazuje, že pokud všechny výroky assert vrátí true, pak testovací GUI vrátí skutečný výsledek a pokud selže jediný test, vrátí neúspěšný výsledek.