Junit Assert & AssertEquals s příkladem
Co je Junit Assert?
Assert je metoda užitečná při určování stavu Pass nebo Fail testovacího případu. Metody Claim poskytuje třída org.junit.Assert, která rozšiřuje třídu java.lang.Object.
Existují různé typy tvrzení, jako je 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 k detekci selhání testu.
Metody tvrzení poskytuje třída org.junit.Tvrdit která se rozšiřuje java.lang.Object třída.
JUnit Metody tvrzení
Boolean
Pokud chcete otestovat booleovské podmínky (pravda nebo nepravda), můžete použít následující metody tvrzení
- assertTrue (podmínka)
- assertFalse (podmínka)
Zde je podmínkou booleovská hodnota.
Objekt nula
Pokud chcete zkontrolovat počáteční hodnotu objektu/proměnné, máte následující metody:
- askNull(objekt)
- askNotNull(objekt)
Zde je objekt Java objekt např askNull(skutecne);
Identický
Pokud chcete zkontrolovat, zda jsou objekty totožné (tj. porovnání dvou odkazů na stejný java objekt), nebo různé.
- tvrditStejně(očekávaný, skutečný), Vrátí se true if očekávaný == skutečný
- claimNotSame (očekávaný, skutečný)
Tvrdit se rovná
Pokud chcete otestovat rovnost dvou objektů, máte následující metody
- claimEquals(očekávaný, skutečný)
Vrátí se true, pokud: očekávaný.se rovná (skutečný) vrátí true.
Assert Array Equals
Pokud chcete otestovat rovnost polí, máte následující metody, jak je uvedeno níže:
- claimArrayEquals(očekávané, skutečné)
Výše uvedená metoda musí být použita, pokud mají pole stejnou délku pro každou platnou hodnotu pro i, můžete to zkontrolovat, jak je uvedeno níže:
- tvrdit se rovná(očekávaný[i], skutečný[i])
- claimArrayEquals(očekávaný[i], skutečný[i])
Zpráva o selhání
Pokud chcete vyvolat jakoukoli chybu tvrzení, máte selhat() což vždy vede k neúspěšnému verdiktu.
- Selhání (zpráva);
Můžete mít metodu tvrzení s další Řetězec parametr jako první parametr. Tento řetězec bude připojen ke zprávě o selhání, pokud se ověření nezdaří. Např selhání (zpráva) lze napsat jako
- askEquals( zpráva, očekávaný, skutečný)
JUnit tvrdit Rovná se
Ty máš tvrdit se rovná(a,b) která se opírá o rovná se () metoda třídy Object.
- Zde to bude hodnoceno jako a.rovná se(b).
- Zde se testovaná třída používá k určení vhodného vztahu rovnosti.
- Pokud třída nepřepíše rovná se () metoda Objekt třídy, získá výchozí chování rovná se () metoda, tedy identita objektu.
If a si b jsou primitivy jako např byte, int, boolean, atd., pak bude provedeno následující pro statementEquals(a,b) :
a si b budou převedeny na ekvivalentní typ objektu wrapper (Byte, Celé číslo, Boolean, atd.) a poté a.rovná se(b) bude vyhodnocena.
Například: Uvažujme níže uvedené řetězce se stejnými hodnotami, otestujme to pomocí sustainTrue
String obj1="Junit"; String obj2="Junit"; assertEquals(obj1,obj2);
Výše uvedený příkaz statement vrátí true, protože obj1.equals(obj2) vrátí true.
Tvrzení s pohyblivou řádovou čárkou
Pokud chcete porovnat typy s plovoucí desetinnou čárkou (např zdvojnásobit or vznášet se), potřebujete další požadovaný parametr delta abyste se vyhnuli problémům se zaokrouhlovacími chybami při porovnávání s plovoucí desetinnou čárkou.
Tvrzení se hodnotí následovně:
- Math.abs( očekáváno – skutečné ) <= delta
Například:
tvrditEquals(aDoubleHodnota, dalšíDoubleHodnota, 0.001)
JUnit Příklad tvrzení
Níže uvedený příklad ukazuje, jak uplatnit podmínku pomocí JUnit prosazovat metody.
Vytvořme jednoduchou testovací třídu s názvem Junit4AssertionTest.java a třída testovacích běžců TestRunner.java.
Vytvoříte několik proměnných a důležitých příkazů pro tvrzení JUnit.
V tomto příkladu spustíte naši testovací třídu pomocí TestRunner.java
Krok 1) Vytvořme třídu pokrývající všechny důležité metody příkazů statement v junit:
Junit4AssertionTest.java
package guru99.junit; import static org.junit.Assert.*; import org.junit.Test; public class Junit4AssertionTest { @Test public void testAssert(){ //Variable declaration String string1="Junit"; String string2="Junit"; String string3="test"; String string4="test"; String string5=null; int variable1=1; int variable2=2; int[] airethematicArrary1 = { 1, 2, 3 }; int[] airethematicArrary2 = { 1, 2, 3 }; //Assert statements assertEquals(string1,string2); assertSame(string3, string4); assertNotSame(string1, string3); assertNotNull(string1); assertNull(string5); assertTrue(variable1<variable2); assertArrayEquals(airethematicArrary1, airethematicArrary2); } }
Krok 2) Chcete-li provést výše uvedenou třídu, musíte vytvořit třídu testovacího běžce:
TestRunner.java
package guru99.junit; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(Junit4AssertionTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result=="+result.wasSuccessful()); } }
Krok 3) Pojďme analyzovat očekávaný výstup krok za krokem:
Zvažte postupně všechna tvrzení tvrzení:
- claimEquals(řetězec1,řetězec2);
Nyní porovnejte string1=”Junit” s string2=”Junit” s metodou rovná se třídě objektu. Nahrazení metody statementEquals z metody java.lang.Object.equals() :
string1.equals(string2)=> vrací true
Vrátí se tedy statementEquals(řetězec1,řetězec2). pravdivý.
- asseSame(řetězec3, řetězec4);
Funkce „assertSame()“ má zkontrolovat, zda dva objekty odkazují na stejný objekt.
Vzhledem k tomu, že string3=”test” a string4=”test” znamená, že jak řetězec3, tak řetězec4 jsou stejného typu, takže se vrátí tvrzenýSame(řetězec3, řetězec4). pravdivý.
- ssesNotSame(řetězec1, řetězec3);
Funkce „assertNotSame()“ má zkontrolovat, zda dva objekty neodkazují na stejný objekt.
Protože řetězec1=”Junit” a řetězec3=”test” znamená, že řetězec1 a řetězec3 jsou různého typu, vrátí se tedy deklaraceNotSame(řetězec1, řetězec3). pravdivý.
- askNotNull(řetězec1);
Funkce „assertNotNull()“ slouží ke kontrole, zda objekt není null.
Protože string1= “Junit”, což je nenulová hodnota, tak se asertNotNull(řetězec1) vrátí pravdivý.
- asseNull(řetězec5);
Funkce „assertNull()“ slouží ke kontrole, zda je objekt null.
Protože řetězec5= null, což je hodnota null, vrátí se asertNull(řetězec5). pravdivý.
- tvrditpravda(proměnná1
Funkce „assertTrue()“ slouží ke kontrole, zda je podmínka pravdivá.
Protože proměnná1=1 a proměnná2=2, což ukazuje, že proměnná1 pravdivý.
- asseArrayEquals(airethematicArrary1, airethematicArrary2);
Funkce „assertArrayEquals()“ má zkontrolovat, 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.
Vzhledem k tomu, že airethematicArrary1 = { 1, 2, 3 } a airethematicArrary2 = { 1, 2, 3 }, což ukazuje, že obě pole jsou si rovna, tak se asertArrayEquals(airethematicArrary1, airethematicArrary2) vrátí pravdivý
Protože všech sedm tvrzení tvrzení Junit4AssertionTest.java class vrátí hodnotu true, proto když spustíte třídu test statement, 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, jak je uvedeno níže:
Výše uvedený výstup ukazuje úspěšný výsledek testu podle očekávání.
Shrnutí
V tomto tutoriálu jste se naučili všechny důležité typy metod tvrzení, které poskytuje JUnit. Také jste viděli příklady tvrzení tvrzení. Což ukazuje, že pokud všechny příkazy claim vrátí true, pak testovací GUI vrátí pravdivý výsledek a pokud jediný test selže, vrátí neúspěšný výsledek.