Junit Assert & AssertEquals med exempel

Innehållsförteckning:

Anonim

Vad är Junit Assert?

Assert är en metod som är användbar för att bestämma godkänd eller misslyckad status för ett testfall. Assertmetoderna tillhandahålls av klassen org.junit.Assert som sträcker sig java.lang.Object-klassen.

Det finns olika typer av påståenden som Boolean, Null, Identical etc.

Junit tillhandahåller en klass med namnet Assert, som ger en massa påståendemetoder som är användbara för att skriva testfall och för att upptäcka testfel

Påståendemetoderna tillhandahålls av klassen org.junit.Assert som utökar java.lang.Object- klassen.

I den här handledningen lär du dig-

  • JUnit Assert-metoder
  • Boolean
  • Nullt objekt
  • Identisk
  • Påstå är lika
  • Assert Array är lika
  • Felmeddelande
  • JUnit hävdar likheter
  • Påståenden om flytande punkt
  • Exempel på JUnit Assert

JUnit Assert-metoder

Boolean

Om du vill testa de booleska förhållandena (sant eller falskt) kan du använda följande påståendemetoder

  1. assertTrue (villkor)
  2. assertFalse (villkor)

Här är villkoret ett booleskt värde.

Nullt objekt

Om du vill kontrollera initialvärdet för ett objekt / variabel har du följande metoder:

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

Här är objektet Java-objekt, t.ex. assertNull (faktisk);

Identisk

Om du vill kontrollera om objekten är identiska (dvs. att jämföra två referenser till samma java-objekt) eller olika.

  1. assertSame (förväntat, faktiskt), det kommer att återvända om det förväntas == faktiskt
  2. assertNotSame (förväntat, faktiskt)

Påstå är lika

Om du vill testa likhet mellan två objekt har du följande metoder

  • assertEquals (förväntat, faktiskt)

Det kommer att returnera sant om: förväntat. Lika (faktiskt) returnerar sant.

Assert Array är lika

Om du vill testa likhet mellan matriser har du följande metoder enligt nedan:

  • assertArrayEquals (förväntad, faktisk)

Ovanstående metod måste användas om matriser har samma längd, för varje giltigt värde för i kan du kontrollera det enligt nedan:

  • assertEquals (förväntat [i], faktiskt [i])
  • assertArrayEquals (förväntat [i], faktiskt [i])

Felmeddelande

Om du vill kasta något påståendefel har du fail () som alltid resulterar i ett felbedömning.

  • Fail (meddelande);

Du kan ha påståendemetod med en ytterligare strängparameter som den första parametern. Den här strängen läggs till i felmeddelandet om påståendet misslyckas. Till exempel misslyckas (meddelande) kan skrivas som

  • assertEquals (meddelande, förväntat, faktiskt)

JUnit hävdar likheter

Du har assertEquals (a, b) som förlitar sig på metoden equals () i Object-klassen.

  • Här kommer det att utvärderas som a. Likheter (b).
  • Här används klassen som testas för att bestämma en lämplig jämställdhetsrelation.
  • Om en klass inte åsidosätter lik () -metoden för objektklassen , kommer den att få standardbeteendet för metoden lika () , dvs. objektidentitet.

Om a och b är primitiva som byte , int , boolean , etc. kommer följande att göras för assertEquals (a, b):

a och b kommer att konverteras till motsvarande omslagstyp ( Byte, Integer , Boolean , etc.) och sedan utvärderas a.ekvivalenter (b) .

Till exempel: Tänk på nedanstående strängar som har samma värden, låt oss testa det med assertTrue

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

Ovanstående uttalande kommer att returnera true när obj1.equals (obj2) returnerar true.

Påståenden om flytande punkt

När du vill jämföra flyttalstyper (t.ex. dubbel eller float ), behöver du en extra parameter som krävs delta för att undvika problem med avrundningsfel medan du gör flyttals jämförelser.

Påståendet utvärderas enligt nedan:

  • Math.abs (förväntat - faktiskt) <= delta

Till exempel:

assertEquals (aDoubleValue, anotherDoubleValue, 0.001)

Exempel på JUnit Assert

Nedanstående exempel visar hur man kan hävda ett tillstånd med JUnit assert-metoder.

Låt oss skapa en enkel testklass med namnet Junit4AssertionTest.java och en testlöparklass TestRunner.java .

Du kommer att skapa några variabler och viktiga påståenden i JUnit.

I det här exemplet kommer du att utföra vår testklass med TestRunner.java

Steg 1) Låter oss skapa en klass som täcker alla viktiga påståendemetoder i junit:

Junit4AssertionTest.java

paket guru99.junit;importera statisk org.junit.Assert. *;importera org.junit.Test;offentlig klass Junit4AssertionTest {@Testaoffentligt ogiltigt testAssert () {// VariabeldeklarationSträngsträng1 = "Junit";String string2 = "Junit";String string3 = "test";String string4 = "test";Strängsträng5 = null;int-variabel 1 = 1;int variabel2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// Hävda uttalandenassertEquals (sträng1, sträng2);assertSame (string3, string4);assertNotSame (sträng1, sträng3);assertNotNull (sträng1);assertNull (sträng5);assertTrue (variabel1 

Steg 2) Du måste skapa en testlöparklass för att utföra ovan klass:

TestRunner.java

paket guru99.junit;importera org.junit.runner.JUnitCore;importera org.junit.runner.Result;importera org.junit.runner.notification.Failure;offentlig klass TestRunner {public static void main (String [] args) {Resultatresultat = JUnitCore.runClasses (Junit4AssertionTest.class);för (Failure failure: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Resultat ==" + result.wasSuccessful ());}}

Steg 3) Låt oss analysera förväntad produktion steg för steg:

Tänk på alla påståendeförklaringar en efter en:

  1. assertEquals (sträng1, sträng2);

Jämför nu string1 = "Junit" med string2 = "Junit" med lika metoden för objektklass. Ersätter assertEquals-metoden från java.lang.Object.equals () -metoden:

string1.equals (string2) => returnerar true

Så assertEquals (string1, string2) kommer att returnera true .

  1. assertSame (string3, string4);

"assertSame ()" - funktionalitet är att kontrollera att de två objekten hänvisar till samma objekt.

Eftersom string3 = "test" och string4 = "test" betyder att både string3 och string4 är av samma typ så assertSame (string3, string4) kommer att returnera true .

  1. assertNotSame (sträng1, sträng3);

"assertNotSame ()" - funktionalitet är att kontrollera att de två objekten inte hänvisar till samma objekt.

Eftersom string1 = "Junit" och string3 = "test" betyder att både string1 och string3 är av olika typer, så assertNotSame (string1, string3) kommer att returnera true .

  1. assertNotNull (sträng1);

"assertNotNull ()" - funktion är att kontrollera att ett objekt inte är null.

Eftersom string1 = "Junit" som är ett icke-nollvärde så kommer assertNotNull (string1) att returnera true .

  1. assertNull (sträng5);

"assertNull ()" - funktionalitet är att kontrollera att ett objekt är null.

Eftersom string5 = null som är ett nullvärde så kommer assertNull (string5) att returnera true .

  1. assertTrue (variabel1

"assertTrue ()" - funktionalitet är att kontrollera att ett villkor är sant.

Eftersom variable1 = 1 och variabel2 = 2, vilket visar att variable1 sant .

  1. assertArrayEquals (airethematicArrary1, airethematicArrary2);

"assertArrayEquals ()" - funktionalitet är att kontrollera att den förväntade matrisen och den resulterade matrisen är lika. Typen av Array kan vara int, long, short, char, byte eller java.lang.Object.

Sedan airethematicArrary1 = {1, 2, 3} och airethematicArrary2 = {1, 2, 3} som visar både de uppsättningar är lika så assertArrayEquals (airethematicArrary1, airethematicArrary2) returnerar sant

Eftersom alla sju påståendeförklaringarna från Junit4AssertionTest.java- klassen returnerar sant, kommer den att returnera ett lyckat test när du kör testassert- klassen. (se utdata nedan)

Steg 4) Högerklicka på Junit4AssertionTest.java och klicka på runAs-> JUnit. Du ser utdata enligt nedan:

Ovanstående utdata visar ett framgångsrikt testresultat som förväntat.

Sammanfattning:

I den här handledningen lärde du dig alla viktiga typer av påståendemetoder som tillhandahålls av JUnit. Du har också sett exemplen på påståenden. Vilket visar att om alla påståendepåståenden är sanna, returnerar test-GUI ett sant resultat och om det enda testet misslyckas kommer det att returnera ett misslyckat resultat.