Junit Assert & Assert er lig med eksempel
⚡ Smart opsummering
JUnit Assert og AssertEquals bestemmer status for bestået eller ikke bestået for en testcase ved at sammenligne forventede og faktiske værdier. Denne ressource forklarer assert-metoderne leveret af org.junit.Assert, herunder booleske, null-, identitets-, ligheds- og array-påstande, med et komplet fungerende eksempel.
Hvad er Junit Assert?
Assert er en metode, der er nyttig til at bestemme status for bestået eller ikke bestået i en testcase. Assert-metoderne leveres af klassen org.junit.Assert, som udvider java.lang.Object-klassen.
Der findes forskellige typer af påstande, såsom booleske, nul-, identiske osv.
JUnit stiller en klasse med navnet Assert til rådighed, som leverer en række assertion-metoder, der er nyttige til at skrive testcases og detektere testfejl.
Assert-metoderne leveres af klassen org.junit.Assert, som forlænger java.lang.Object klasse.
JUnit hævde metoder
Boolesk
Hvis du vil teste de boolske betingelser (sand eller falsk), kan du bruge følgende assert-metoder:
- assertTrue (tilstand)
- 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:
- assertNull(objekt)
- assertNotNull(objekt)
Her er objektet et Java objekt, f.eks assertNull(faktisk);
Identisk
Hvis du vil kontrollere, om objekterne er identiske (dvs. sammenligne to referencer til den samme Java objekt) eller forskelligt:
- assertSame(forventet, faktisk) — Den returnerer sand, hvis forventet == faktisk.
- assertNotSame (forventet, faktisk)
Hævde Lige
Hvis du vil teste ligheden mellem to objekter, har du følgende metode:
- assertEquals (forventet, faktisk)
Det vil vende tilbage sandt, hvis forventet.lig med (faktisk) returnerer sandt.
Assert Array er lig med
Hvis du vil teste ligheden af arrays, har du følgende metode:
- 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(), hvilket altid resulterer i en fiasko.
- mislykkes(besked);
Du kan have en assertion-metode med en ekstra String parameter som den første parameter. Denne streng vil blive tilføjet til fejlmeddelelsen, hvis påstanden mislykkes. For eksempel, fejl (besked) kan skrives som:
- assertEquals(besked, forventet, faktisk)
JUnit assertEquals
Du har hævderLigMed(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 af Object klasse, vil den få standardadfærden for lige med() metode, dvs. 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, boolskosv.), og derefter a.lig med(b) vil blive evalueret.
For eksempel, overvej at de nedenfor nævnte strenge har de samme værdier; lad os teste det ved hjælp af assertEquals:
String obj1 = "Junit"; String obj2 = "Junit"; assertEquals(obj1, obj2);
Ovenstående assert-sætning returnerer sand, da obj1.equals(obj2) returnerer sand.
Påstande om flydende komma
Når du vil sammenligne flydende komma-typer (f.eks. fordoble or flyde), skal du bruge en yderligere påkrævet parameter, Delta, for at undgå problemer med afrundingsfejl under flydende komma-sammenligninger.
Påstanden vurderes som angivet nedenfor:
- Matematik.abs(forventet – faktisk) <= delta
For eksempel:
hævderLig med(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 med navnet Junit4AssertionTest.java og en testløberklasse TestRunner.java.
Du skal oprette et par variabler og vigtige assert-sætninger i JUnit.
I dette eksempel skal du udføre vores testklasse ved hjælp af TestRunner.java.
Trin 1) Lad os oprette en klasse, der dækker alle vigtige assert-sætningsmetoder 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 testrunner-klasse 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 det forventede output trin for trin. Betragt alle assert-udsagn én efter én:
- hævderLigeVel(streng1, streng2);
Sammenlign nu string1="Junit" med string2="Junit" med equals-metoden fra Object-klassen. Erstat assertEquals-metoden med java.lang.Object.equals()-metoden:
streng1.lig med(streng2) => returnerer sand
Så assertEquals(string1, string2) vil returnere sand.
- assertSame(streng3, streng4);
Funktionaliteten “assertSame()” har til formål at kontrollere, at de to objekter refererer til det samme objekt. Da string3="test" og string4="test", er både string3 og string4 af samme type, så assertSame(string3, string4) vil returnere sand.
- assertNotSame(streng1, streng3);
Funktionaliteten “assertNotSame()” har til formål at kontrollere, at de to objekter ikke refererer til det samme objekt. Da string1=”Junit” og string3=”test”, er både string1 og string3 af forskellige typer, så assertNotSame(string1, string3) vil returnere sand.
- assertNotNull(streng1);
Funktionaliteten “assertNotNull()” har til formål at kontrollere, at et objekt ikke er null. Da string1=”Junit”, som er en ikke-null-værdi, vil assertNotNull(string1) returnere sand.
- assertNull(streng5);
Funktionaliteten "assertNull()" har til formål at kontrollere, om et objekt er null. Da string5=null, som er en null-værdi, vil assertNull(string5) returnere sand.
- påståSand(variabel1 < variabel2);
Funktionaliteten "assertTrue()" har til formål at kontrollere, om en betingelse er sand. Da variabel1=1 og variabel2=2, hvilket viser, at betingelsen variabel1 < variabel2 er sand, vil assertTrue(variabel1 < variabel2) returnere sand.
- assertArrayEquals(airethematicArrary1, airethematicArrary2);
Funktionaliteten "assertArrayEquals()" har til formål at kontrollere, at det forventede array og det resulterende array er ens. Arraytypen kan være int, long, short, char, byte eller java.lang.Object. Da airethematicArrary1 = { 1, 2, 3 } og airethematicArrary2 = { 1, 2, 3 }, hvilket viser, at begge arrays er ens, vil assertArrayEquals(airethematicArrary1, airethematicArrary2) returnere sand.
Da alle syv hævder udsagn fra Junit4AssertionTest.java class return true, når du udfører test assert-klassen, returnerer den en vellykket test (se outputtet nedenfor).
Trin 4) Højreklik på Junit4AssertionTest.java og klik på Kør som -> JUnit. Du vil se output som angivet nedenfor:
Ovenstående output viser et forventet vellykket testresultat.


