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í

  1. assertTrue (podmínka)
  2. 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:

  1. askNull(objekt)
  2. 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é.

  1. tvrditStejně(očekávaný, skutečný), Vrátí se true if očekávaný == skutečný
  2. 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í:

  1. 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ý.

  1. 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ý.

  1. 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ý.

  1. 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ý.

  1. 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ý.

  1. 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ý.

  1. 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:

JUnit Příklad tvrzení

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.