Junit Assert & AssertEquals met voorbeeld

Wat is Junit Assert?

Assert is een methode die nuttig is bij het bepalen van de Pass- of Fail-status van een testcase. De assert-methoden worden geleverd door de klasse org.junit.Assert, die een uitbreiding is van de klasse java.lang.Object.

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

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

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

JUnit Assert-methoden

Boolean

Als u de Booleaanse voorwaarden (waar of onwaar) wilt testen, kunt u follo gebruikenwing methoden beweren

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

Hier is de voorwaarde een Booleaanse waarde.

Null-object

Als je de initiële waarde van een object/variabele wilt controleren, heb je het volgendewing methoden:

  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 je de gelijkheid van twee objecten wilt testen, heb je het volgendewing methoden

  • assertEquals(verwacht, feitelijk)

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

Beweer dat array gelijk is

Als je de gelijkheid van arrays wilt testen, heb je het volgendewing methoden zoals hieronder aangegeven:

  • 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 beweertEquals

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. en dan het volgendewing wordt 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 double 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 – feitelijk ) <= delta

Bijvoorbeeld:

bewerenEquals( aDoubleWaarde, nog eenDoubleWaarde, 0.001)

JUnit Assert-voorbeeld

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

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

In JUnit maakt u enkele variabelen en belangrijke beweringsinstructies.

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

Stap 1) Laten we in juni een klasse maken die alle belangrijke assert-statementmethoden 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 gelijkheidsmethode van de objectklasse. De methode assertEquals vervangen door de methode java.lang.Object.equals() :

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” betekent dat zowel string1 als string3 van verschillende typen zijn, zal assertNotSame(string1, string3) retourneren waar.

  1. assertNotNull(string1);

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

Omdat string1= "Junit", wat een niet-null-waarde is, zal assertNotNull(string1) terugkeren 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 Assert-voorbeeld

Bovenstaande uitvoer toont een succesvol testresultaat zoals verwacht.

Samengevat

In deze tutorial heb je alle belangrijke soorten beweringsmethoden van JUnit geleerd. 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.