Junit Assert & AssertEquals met voorbeeld

Wat is Junit Assert?

Assert is een methode die handig is om de status van een testcase te bepalen: Pass (Geslaagd) of Fail (Mislukt). De assert-methoden worden geleverd door de klasse org.junit.Assert, die de klasse java.lang.Object uitbreidt.

Er zijn verschillende soorten beweringen, zoals Boolean, Null, Identical etc.

Junit biedt een klasse met de naam Assert, die een aantal bevestigingsmethoden biedt die nuttig zijn bij het schrijven van testcases en het detecteren van testfalen.

De assert-methoden worden geleverd door de klasse org.junit.Assert die zich uitstrekt java.lang.Object klasse.

JUnit Beweer methoden

Boolean

Als u de Booleaanse voorwaarden (waar of onwaar) wilt testen, kunt u de volgende assert-methoden gebruiken

  1. assertTrue (voorwaarde)
  2. assertFalse (voorwaarde)

Hier is de voorwaarde een Booleaanse waarde.

Null-object

Als u de beginwaarde van een object/variabele wilt controleren, hebt u de volgende methoden tot uw beschikking:

  1. assertNull(object)
  2. assertNotNull(object)

Hier is het voorwerp Java object bv bewerenNull(werkelijk);

Identiek

Als u wilt controleren of de objecten identiek zijn (dwz twee verwijzingen naar hetzelfde Java-object vergelijken) of verschillend zijn.

  1. bewerenHetzelfde(verwacht, feitelijk), Het zal waar retourneren als verwacht == feitelijk
  2. assertNotSame(verwacht, feitelijk)

Beweer gelijken

Als u de gelijkheid van twee objecten wilt testen, hebt u de volgende methoden tot uw beschikking

  • assertEquals(verwacht, feitelijk)

Het zal waar retourneren als: verwacht.is gelijk aan(werkelijk) geeft true terug.

Beweer dat array gelijk is

Als u de gelijkheid van arrays wilt testen, kunt u de volgende methoden gebruiken:

  • assertArrayEquals(verwacht, feitelijk)

Bovenstaande methode moet worden gebruikt als arrays dezelfde lengte hebben, voor elke geldige waarde voor i, u kunt het controleren zoals hieronder aangegeven:

  • assertEquals(verwacht[i],werkelijk[i])
  • assertArrayEquals(verwacht[i],werkelijk[i])

Mislukt bericht

Als je een beweringsfout wilt maken, dan heb je dat gedaan mislukking() dat resulteert altijd in een mislukt oordeel.

  • Mislukt(bericht);

U kunt een beweringsmethode gebruiken met een extra Draad parameter als eerste parameter. Deze tekenreeks wordt toegevoegd aan het foutbericht als de bewering mislukt. Bijv mislukt( bericht ) kan worden geschreven als

  • assertEquals(bericht, verwacht, feitelijk)

JUnit assertIs gelijk aan

U heeft bewerenGelijk(a,b) die afhankelijk is van de is gelijk aan () methode van de Object-klasse.

  • Hier wordt het geëvalueerd als a.is gelijk aan( b ).
  • Hier wordt de te testen klasse gebruikt om een ​​geschikte gelijkheidsrelatie te bepalen.
  • Als een klasse de is gelijk aan () methode van Object class, krijgt het het standaardgedrag van is gelijk aan () methode, dat wil zeggen objectidentiteit.

If a en b zijn primitieven zoals byte, int, boolean, enz. dan zal het volgende worden gedaan voor assertEquals(a,b) :

a en b wordt geconverteerd naar hun equivalente wrapper-objecttype (Byte, geheel getal, Boolean, enz.), en dan a.is gelijk aan( b ) zal worden geëvalueerd.

Bijvoorbeeld: stel dat de onderstaande tekenreeksen dezelfde waarden hebben. Laten we dit testen met assertTrue

String obj1="Junit";
String obj2="Junit";
assertEquals(obj1,obj2);

De bovenstaande beweringverklaring retourneert waar, terwijl obj1.equals(obj2) waar retourneert.

Drijvende-komma-beweringen

Wanneer u drijvende-kommatypen wilt vergelijken (bijv verdubbelen or drijven), heeft u een extra vereiste parameter nodig delta om problemen met afrondingsfouten te voorkomen bij het uitvoeren van drijvende-kommavergelijkingen.

De bewering evalueert zoals hieronder weergegeven:

  • Math.abs(verwacht – werkelijk) <= delta

Bijvoorbeeld:

bewerenEquals( aDoubleWaarde, nog eenDoubleWaarde, 0.001)

JUnit Beweer voorbeeld

Het onderstaande voorbeeld laat zien hoe u een voorwaarde kunt bevestigen met behulp van JUnit methoden beweren.

Laten we een eenvoudige testklasse maken met de naam Junit4AssertionTest.java en een testrunnerklasse TestRunner.java.

U zult enkele variabelen en belangrijke beweringsverklaringen maken JUnit.

In dit voorbeeld voert u onze testklasse uit met TestRunner.java

Stap 1) Laten we een klasse maken die alle belangrijke assert-statementmethoden in junit omvat:

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);					
    }		
}		

Stap 2) U moet een testrunnerklasse maken om bovenstaande klasse uit te voeren:

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());							
   }		
}      

Stap 3) Laten we de verwachte output stap voor stap analyseren:

Beschouw alle beweringsverklaringen één voor één:

  1. assertEquals(tekenreeks1,tekenreeks2);

Vergelijk nu string1=” Junit” met string2=” Junit” met de equals methode van de objectklasse. AssertEquals methode vervangen door de java.lang.Object.equals() methode:

string1.equals(string2)=> retourneert waar

Dus assertEquals(string1,string2) zal terugkeren waar.

  1. assertSame(string3, string4);

De functionaliteit “assertSame()” is om te controleren of de twee objecten naar hetzelfde object verwijzen.

Omdat string3=”test” en string4=”test” betekent dat zowel string3 als string4 van hetzelfde type zijn, zal assertSame(string3, string4) retourneren waar.

  1. assertNotSame(string1, string3);

De “assertNotSame()”-functionaliteit is om te controleren of de twee objecten niet naar hetzelfde object verwijzen.

Omdat string1=”Junit” en string3=”test” betekenen dat zowel string1 als string3 van verschillende typen zijn, zal assertNotSame(string1, string3) waar.

  1. assertNotNull(string1);

De “assertNotNull()”-functionaliteit is om te controleren of een object niet nul is.

Omdat string1= “Junit” een niet-nulwaarde is, zal assertNotNull(string1) retourneren waar.

  1. assertNull(string5);

De “assertNull()”-functionaliteit is om te controleren of een object nul is.

Omdat string5= null, wat een nulwaarde is, zal assertNull(string5) terugkeren waar.

  1. beweringWaar(variabele1

De “assertTrue()”-functionaliteit is om te controleren of een voorwaarde waar is.

Omdat variabele1=1 en variabele2=2, wat die variabele1 laat zien waar.

  1. assertArrayEquals(airethematischeArrary1, airethematischeArrary2);

De functionaliteit “assertArrayEquals()” is om te controleren of de verwachte array en de resulterende array gelijk zijn. Het type array kan int, long, short, char, byte of java.lang.Object zijn.

Omdat airethematicArrary1 = { 1, 2, 3 } en airethematicArrary2 = { 1, 2, 3 }, wat aangeeft dat beide arrays gelijk zijn, zal assertArrayEquals(airethematicArrary1, airethematicArrary2) retourneren waar

Aangezien alle zeven uitspraken doen over Junit4AssertionTest.java class retourneert true, dus wanneer u de test assert-klasse uitvoert, zal deze een succesvolle test retourneren. (zie onderstaande uitvoer)

Stap 4) Klik met de rechtermuisknop op Junit4AssertionTest.java en klik op runAs->JUnit. U zult de uitvoer zien zoals hieronder weergegeven:

JUnit Beweer voorbeeld

Bovenstaande uitvoer toont een succesvol testresultaat zoals verwacht.

Samenvatting

In deze tutorial heb je alle belangrijke soorten beweringsmethoden geleerd die worden aangeboden door JUnit. Je hebt ook de voorbeelden van beweringsverklaringen gezien. Hieruit blijkt dat als alle assert-instructies waar retourneren, de test-GUI een waar resultaat zal retourneren en als de enkele test mislukt, zal deze een mislukt resultaat opleveren.