Junit Assert & Assert liknar med exempel
Vad är Junit Assert?
Assert är en metod användbar för att bestämma statusen Godkänd eller Underkänd för ett testfall. Assertmetoderna tillhandahålls av klassen org.junit.Assert som utökar klassen java.lang.Object.
Det finns olika typer av påståenden som Boolean, Null, Identical etc.
Junit tillhandahåller en klass som heter Assert, som tillhandahåller ett gäng påståendemetoder användbara för att skriva testfall och för att upptäcka testfel
Assertmetoderna tillhandahålls av klassen org.junit.Assert som sträcker sig java.lang.Object klass.
JUnit hävda metoder
Boolean
Om du vill testa de booleska förhållandena (sant eller falskt), kan du använda följande påståendemetoder
- assertTrue(condition)
- hävdaFalse(villkor)
Här är tillståndet ett booleskt värde.
Noll objekt
Om du vill kontrollera initialvärdet för ett objekt/variabel har du följande metoder:
- assertNull(objekt)
- assertNotNull(objekt)
Här är objektet Java objektet t.ex assertNull(faktisk);
Identisk
Om du vill kontrollera om objekten är identiska (dvs jämföra två referenser till samma java-objekt), eller olika.
- assertSame(expected, actual), Det kommer att återkomma sant om förväntat == faktisk
- hävdaNotSame(förväntad, faktisk)
Påstå lika
Om du vill testa likheten mellan två objekt har du följande metoder
- assertEquals(expected, real)
Det kommer att returneras sant om: expect.equals( faktiska ) returnerar sant.
Assert Array Equals
Om du vill testa jämlikhet mellan arrayer, har du följande metoder enligt nedan:
- assertArrayEquals(expected, actual)
Metoden ovan måste användas om arrayer har samma längd, för varje giltigt värde för i, kan du kontrollera det enligt nedan:
- assertEquals(expected[i],faktisk[i])
- assertArrayEquals(expected[i],faktisk[i])
Felmeddelande
Om du vill kasta något påståendefel har du det misslyckas() som alltid resulterar i en underkänd dom.
- Fail(meddelande);
Du kan ha påstående metod med en extra Sträng parameter som den första parametern. Denna sträng kommer att läggas till i felmeddelandet om påståendet misslyckas. T.ex misslyckas (meddelande) kan skrivas som
- assertEquals( meddelande, förväntat, faktisk)
JUnit assertEquals
Du har assertEquals(a,b) som förlitar sig på är lika med () metod för klassen Object.
- Här kommer det att utvärderas som a. är lika med( b ).
- Här används klassen som testas för att fastställa ett lämpligt jämställdhetsförhållande.
- Om en klass inte åsidosätter är lika med () metod av Ändamålet klass kommer den att få standardbeteendet för är lika med () metod, dvs objektidentitet.
If a och b är primitiver som t.ex bitgrupp, int, boolean, etc. kommer följande att göras för assertEquals(a,b) :
a och b kommer att konverteras till motsvarande omslagsobjekttyp (Byte, heltal, Boolean, etc.), och sedan a. är lika med( b ) kommer att utvärderas.
Till exempel: Överväg att nedan nämnda strängar har samma värden, låt oss testa det med assertTrue
String obj1="Junit"; String obj2="Junit"; assertEquals(obj1,obj2);
Ovanstående påstående kommer att returnera sant eftersom obj1.equals(obj2) returnerar sant.
Flyttalspåståenden
När du vill jämföra flyttalstyper (t.ex dubbla or flyta), behöver du ytterligare en obligatorisk parameter delta- för att undvika problem med avrundningsfel när man gör flyttaljämförelser.
Påståendet utvärderas enligt nedan:
- Math.abs( förväntat – faktisk ) <= delta
Till exempel:
assertEquals(aDoubleVärde, ett annatDoubleVärde, 0.001 )
JUnit Påstå exempel
Nedan exempel visar hur man hävdar ett villkor med hjälp av JUnit hävda 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 köra vår testklass med TestRunner.java
Steg 1) Låt oss skapa en klass som täcker alla viktiga 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); } }
Steg 2) Du måste skapa en testlöparklass för att köra ovanstående klass:
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()); } }
Steg 3) Låt oss analysera förväntad produktion steg för steg:
Betrakta alla påståenden en efter en:
- assertEquals(sträng1,sträng2);
Jämför nu string1=”Junit” med string2=”Junit” med equals-metoden för objektklassen. Ersätter assertEquals-metoden från java.lang.Object.equals()-metoden:
string1.equals(string2)=> returnerar sant
Så assertEquals(sträng1,sträng2) kommer tillbaka sann.
- assertSame(sträng3, sträng4);
"assertSame()" funktionalitet är att kontrollera att de två objekten refererar till samma objekt.
Eftersom string3=”test” och string4=”test” betyder att både string3 och string4 är av samma typ så kommer assertSame(string3, string4) att returnera sann.
- assertNotSame(sträng1, sträng3);
Funktionen "assertNotSame()" är att kontrollera att de två objekten inte refererar till samma objekt.
Eftersom string1=”Junit” och string3=”test” betyder att både string1 och string3 är av olika typer, så kommer assertNotSame(string1, string3) att returnera sann.
- assertNotNull(sträng1);
Funktionen "assertNotNull()" är att kontrollera att ett objekt inte är null.
Eftersom string1= “Junit” som är ett icke-nullvärde så kommer assertNotNull(string1) att returnera sann.
- 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 sann.
- assertTrue(variabel1
"assertTrue()" funktionalitet är att kontrollera att ett villkor är sant.
Eftersom variabel1=1 och variabel2=2, vilket visar att variabel1 sann.
- assertArrayEquals(airethematicArrary1, airethematicArrary2);
Funktionen "assertArrayEquals()" är att kontrollera att den förväntade arrayen och den resulterande arrayen är lika. Typen av Array kan vara int, long, short, char, byte eller java.lang.Object.
Eftersom airethematicArrary1 = { 1, 2, 3 } och airethematicArrary2 = { 1, 2, 3 } som visar att båda arrayerna är lika så kommer assertArrayEquals(airethematicArrary1, airethematicArrary2) att returnera sann
Eftersom alla sju hävdar uttalanden av Junit4AssertionTest.java class returnerar true, därför kommer den att returnera ett framgångsrikt test när du kör testet assert class. (se utgången nedan)
Steg 4) Högerklicka på Junit4AssertionTest.java och klicka på runAs->JUnit. Du kommer att se utdata enligt nedan:
Ovanstående utdata visar ett lyckat 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å hävda uttalanden. Vilket visar att om alla assert-satser returnerar sant, kommer testgränssnittet att returnera ett sant resultat och om det enda testet misslyckas kommer det att returnera ett misslyckat resultat.