Junit Assert & Assert er lig med eksempel

Hvad er Junit Assert?

Assert er en metode, der er nyttig til at bestemme bestået eller bestået status for en testsag. Assert-metoderne leveres af klassen org.junit.Assert, som udvider java.lang.Object-klassen.

Der er forskellige typer påstande som Boolean, Null, Identical osv.

Junit leverer en klasse ved navn Assert, som giver en masse påstandsmetoder, der er nyttige til at skrive testcases og til at opdage testfejl

Assert-metoderne leveres af klassen org.junit.Assert som strækker sig java.lang.Object klasse.

JUnit hævde metoder

Boolesk

Hvis du vil teste de booleske forhold (sandt eller falsk), kan du bruge følgende påstandsmetoder

  1. assertTrue (tilstand)
  2. assertFalse (tilstand)

Her er betingelsen en boolsk værdi.

Nul objekt

Hvis du vil kontrollere startværdien af ​​et objekt/en variabel, har du følgende metoder:

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

Her er objektet Java objekt f.eks assertNull(faktisk);

Identisk

Hvis du vil kontrollere, om objekterne er identiske (dvs. at sammenligne to referencer til det samme java-objekt), eller forskellige.

  1. assertSame(forventet, faktisk), Det vil vende tilbage sandt, hvis forventet == faktisk
  2. assertNotSame (forventet, faktisk)

Hævde Lige

Hvis du vil teste lighed mellem to objekter, har du følgende metoder

  • assertEquals (forventet, faktisk)

Det vil returnere sandt, hvis: forventet.lig med( faktisk ) returnerer sandt.

Assert Array er lig med

Hvis du vil teste lighed af arrays, har du følgende metoder som angivet nedenfor:

  • assertArrayEquals (forventet, faktisk)

Ovenstående metode skal bruges, hvis arrays har samme længde, for hver gyldig værdi for i, kan du kontrollere det som angivet nedenfor:

  • assertEquals(forventet[i],faktisk[i])
  • assertArrayEquals(forventet[i],faktisk[i])

Fejlmeddelelse

Hvis du vil smide en påstandsfejl, har du det svigte() som altid resulterer i en fejlkendelse.

  • Mislykkedes (meddelelse);

Du kan have påstandsmetode med en ekstra String parameter som den første parameter. Denne streng vil blive tilføjet i fejlmeddelelsen, hvis påstanden mislykkes. F.eks mislykkes (meddelelse) kan skrives som

  • assertEquals( besked, forventet, faktisk)

JUnit assertEquals

Du har assertEquals(a,b) som er afhængig af lige med() metoden i klassen Object.

  • Her vil det blive vurderet som a.lig med(b).
  • Her bruges klassen under test til at bestemme en passende lighedsrelation.
  • Hvis en klasse ikke tilsidesætter lige med() metode til Object klasse, vil den få standardadfærden som lige med() metode, altså objektidentitet.

If a og b er primitiver som f.eks byte, int, booleanosv., så vil følgende blive gjort for assertEquals(a,b):

a og b vil blive konverteret til deres tilsvarende indpakningsobjekttype (Byte, heltal, Booleskosv.), og derefter a.lig med(b) vil blive evalueret.

For eksempel: Overvej nedenstående strenge med samme værdier, lad os teste det ved hjælp af assertTrue

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

Ovenstående assert-udsagn vil returnere sand, da obj1.equals(obj2) returnerer sand.

Påstande om flydende komma

Når du vil sammenligne typer med flydende komma (f.eks fordoble or flyde), har du brug for en ekstra påkrævet parameter Delta for at undgå problemer med afrundingsfejl, mens du laver floating-point sammenligninger.

Påstanden vurderes som angivet nedenfor:

  • Math.abs( forventet – faktisk ) <= delta

For eksempel:

assertEquals(aDoubleVærdi, en andenDoubleVærdi, 0.001)

JUnit Påstå eksempel

Nedenstående eksempel viser, hvordan man hævder en betingelse ved hjælp af JUnit hævde metoder.

Lad os oprette en simpel testklasse ved navn Junit4AssertionTest.java og en testløberklasse TestRunner.java.

Du vil oprette få variabler og vigtige påstandsudsagn i JUnit.

I dette eksempel vil du udføre vores testklasse ved hjælp af TestRunner.java

Trin 1) Lad os oprette en klasse, der dækker alle vigtige assert statement-metoder i 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);					
    }		
}		

Trin 2) Du skal oprette en testløberklasse for at udføre ovenstående klasse:

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

Trin 3) Lad os analysere forventet output trin for trin:

Overvej alle påstande én efter én:

  1. assertEquals(streng1,streng2);

Sammenlign nu string1=”Junit” med string2=”Junit” med equals-metoden for objektklassen. Erstatter assertEquals-metoden fra java.lang.Object.equals()-metoden:

string1.equals(string2)=> returnerer sand

Så assertEquals(streng1,streng2) vender tilbage sand.

  1. assertSame(streng3, streng4);

"assertSame()" funktionalitet er at kontrollere, at de to objekter refererer til det samme objekt.

Da string3=”test” og string4=”test” betyder, at både string3 og string4 er af samme type, så vil assertSame(string3, string4) returnere sand.

  1. assertNotSame(streng1, streng3);

"assertNotSame()" funktionalitet er at kontrollere, at de to objekter ikke refererer til det samme objekt.

Da string1=”Junit” og string3=”test” betyder, at både streng1 og streng3 er af forskellige typer, så vil assertNotSame(streng1, streng3) returnere sand.

  1. assertNotNull(streng1);

"assertNotNull()" funktionalitet er at kontrollere, at et objekt ikke er null.

Da string1= "Junit", som er en ikke-nul værdi, vil assertNotNull(string1) returnere sand.

  1. assertNull(streng5);

"assertNull()" funktionalitet er at kontrollere, at et objekt er null.

Da string5= null, som er en null-værdi, vil assertNull(string5) returnere sand.

  1. assertTrue(variabel1

"assertTrue()" funktionalitet er at kontrollere, at en betingelse er sand.

Siden variabel1=1 og variabel2=2, hvilket viser den variabel1 sand.

  1. assertArrayEquals(airethematicArrary1, airethematicArrary2);

"assertArrayEquals()" funktionalitet er at kontrollere, at den forventede matrix og den resulterende matrix er ens. Typen af ​​Array kan være int, lang, kort, char, byte eller java.lang.Object.

Da airethematicArrary1 = { 1, 2, 3 } og airethematicArrary2 = { 1, 2, 3 }, som viser at begge arrays er ens, så vil assertArrayEquals(airethematicArrary1, airethematicArrary2) returnere sand

Da alle syv hævder udsagn af Junit4AssertionTest.java klasse returnerer sand, derfor vil den returnere en vellykket test, når du udfører testen assert-klassen. (se output nedenfor)

Trin 4) Højreklik på Junit4AssertionTest.java og klik på runAs->JUnit. Du vil se output som angivet nedenfor:

JUnit Påstå eksempel

Ovenstående output viser et vellykket testresultat som forventet.

Resumé

I denne tutorial lærte du alle vigtige typer påstandsmetoder leveret af JUnit. Du har også set eksemplerne på hævde udsagn. Hvilket viser, at hvis alle assert-sætninger returnerer sandt, vil test-GUI'en returnere et sandt resultat, og hvis den enkelte test mislykkes, vil det returnere et mislykket resultat.