Junit Assert & AssertEquals met voorbeeld
โก Slimme samenvatting
JUnit Assert en AssertEquals bepalen of een testcase geslaagd of mislukt is door de verwachte en werkelijke waarden te vergelijken. Deze handleiding legt de assert-methoden van org.junit.Assert uit, waaronder beweringen over booleaanse waarden, null-waarden, identiteit, gelijkheid en arrays, met een volledig werkend voorbeeld.
Wat is Junit Assert?
Assert is een methode die nuttig is om te bepalen of een testcase geslaagd of mislukt is. De assert-methoden worden aangeboden door de klasse org.junit.Assert, die de klasse java.lang.Object uitbreidt.
Er bestaan โโverschillende soorten beweringen, zoals Booleaanse, Null, Identiek, enzovoort.
JUnit Deze bibliotheek biedt een klasse genaamd Assert, die een aantal assertiemethoden bevat die nuttig zijn bij het schrijven van testgevallen en het opsporen van testfouten.
De assert-methoden worden geleverd door de klasse org.junit.Assert, wat de uitbreiding van java.lang.Object klasse.
JUnit Beweer methoden
Boolean
Als je de booleaanse voorwaarden (waar of onwaar) wilt testen, kun je de volgende assert-methoden gebruiken:
- assertTrue (voorwaarde)
- assertFalse (voorwaarde)
Hier is de voorwaarde een Booleaanse waarde.
Null-object
Als u de beginwaarde van een object/variabele wilt controleren, hebt u de volgende methoden tot uw beschikking:
- assertNull(object)
- assertNotNull(object)
Hier is het object een Java voorwerp, bv bewerenNull(werkelijk);
Identiek
Als je wilt controleren of de objecten identiek zijn (dat wil zeggen, twee verwijzingen naar hetzelfde object vergelijken), Java object) of anders:
- assertHetzelfde(verwacht, werkelijk) โ Het retourneert true als verwacht == feitelijk.
- assertNotSame(verwacht, feitelijk)
Beweer gelijken
Als je wilt testen of twee objecten gelijk zijn, kun je de volgende methode gebruiken:
- assertEquals(verwacht, feitelijk)
Het zal waar retourneren als verwacht.gelijk aan(werkelijk) geeft true terug.
Beweer dat array gelijk is
Als je de gelijkheid van arrays wilt testen, kun je de volgende methode gebruiken:
- assertArrayEquals(verwacht, feitelijk)
De bovenstaande methode moet worden gebruikt als de arrays dezelfde lengte hebben. Voor elke geldige waarde voor i, u kunt het controleren zoals hieronder aangegeven:
- assertEquals(expected[i], actual[i])
- assertArrayEquals(expected[i], actual[i])
Mislukt bericht
Als je een beweringsfout wilt maken, dan heb je dat gedaan mislukking(), wat altijd resulteert in een onvoldoende.
- mislukken(bericht);
Je kunt een assertiemethode hebben met een extra Draad parameter als eerste parameter. Deze tekenreeks wordt aan het foutbericht toegevoegd als de bewering mislukt. Bijvoorbeeld: mislukt(bericht) kan worden geschreven als:
- assertEquals(message, expected, actual)
JUnit assertIs gelijk aan
Je beschikt over assertEquals(a, b), die berust op de is gelijk aan () methode van de Object-klasse.
- Hier wordt het geรซvalueerd als a.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 de Object klasse, dan krijgt deze het standaardgedrag van de is gelijk aan () methode, oftewel objectidentiteit.
If a en b zijn primitieven zoals byte, int, boolean, enz., dan wordt het volgende gedaan voor assertEquals(a, b):
a en b wordt geconverteerd naar hun equivalente wrapper-objecttype (Byte, geheel getal, booleaans, enz.), en dan a.gelijk aan(b) zal worden geรซvalueerd.
Neem bijvoorbeeld de onderstaande tekenreeksen die dezelfde waarden hebben; laten we dit testen met behulp van assertEquals:
String obj1 = "Junit"; String obj2 = "Junit"; assertEquals(obj1, obj2);
De bovenstaande assert-instructie zal true retourneren, aangezien obj1.equals(obj2) true retourneert.
Drijvende-komma-beweringen
Wanneer je drijvende-kommawaarden wilt vergelijken (bijvoorbeeld, verdubbelen or drijven), heb je een extra verplichte parameter nodig, delta, om problemen met afrondingsfouten bij drijvende-kommavergelijkingen te voorkomen.
De bewering evalueert zoals hieronder weergegeven:
- Math.abs(verwacht โ werkelijk) <= delta
Bijvoorbeeld:
assertEquals(aDoubleWaarde, nog eenDoubleWaarde, 0.001)
JUnit Beweer voorbeeld
Het onderstaande voorbeeld laat zien hoe je een voorwaarde kunt controleren met behulp van JUnit methoden beweren.
Laten we een eenvoudige testklasse maken met de naam Junit4AssertionTest.java en een testrunnerklasse TestRunner.java.
Je gaat een aantal variabelen en belangrijke assert-instructies aanmaken in JUnit.
In dit voorbeeld voert u onze testklasse uit met behulp van TestRunner.java.
Stap 1) Laten we een klasse maken die alle belangrijke assert-methodes omvat. 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); } }
Stap 2) Je moet een testrunnerklasse maken om de 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 uitvoer stap voor stap analyseren. Bekijk alle assert-instructies รฉรฉn voor รฉรฉn:
- assertEquals(string1, string2);
Vergelijk nu string1=โJunitโ met string2=โJunitโ met behulp van de equals-methode van de Object-klasse. Vervang de assertEquals-methode door de java.lang.Object.equals()-methode:
string1.equals(string2) => retourneert true
Dus assertEquals(string1, string2) zal retourneren waar.
- assertSame(string3, string4);
De functionaliteit "assertSame()" controleert of de twee objecten naar hetzelfde object verwijzen. Omdat string3="test" en string4="test" zijn, zijn zowel string3 als string4 van hetzelfde type, dus assertSame(string3, string4) zal true retourneren. waar.
- assertNotSame(string1, string3);
De functionaliteit "assertNotSame()" controleert of de twee objecten niet naar hetzelfde object verwijzen. Omdat string1="Junit" en string3="test", zijn string1 en string3 van verschillende typen, dus assertNotSame(string1, string3) zal `false` retourneren. waar.
- assertNotNull(string1);
De functionaliteit "assertNotNull()" controleert of een object niet null is. Omdat string1="Junit", wat een niet-null waarde is, zal assertNotNull(string1) een waarde retourneren. waar.
- assertNull(string5);
De functionaliteit "assertNull()" controleert of een object null is. Omdat string5=null, wat een null-waarde is, zal assertNull(string5) null retourneren. waar.
- assertTrue(variabele1 < variabele2);
De functionaliteit "assertTrue()" controleert of een voorwaarde waar is. Omdat variable1=1 en variable2=2, wat aantoont dat de voorwaarde variable1 < variable2 waar is, zal assertTrue(variable1 < variable2) het volgende retourneren: waar.
- assertArrayEquals(airethematischeArrary1, airethematischeArrary2);
De functionaliteit "assertArrayEquals()" controleert 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 aantoont dat beide arrays gelijk zijn, zal assertArrayEquals(airethematicArrary1, airethematicArrary2) true retourneren. waar.
Aangezien alle zeven beweringen de volgende uitspraken bevatten: Junit4AssertionTest.java Als je de test uitvoert met `assert class` en de klasse retourneert `true`, dan zal de test als succesvol worden beoordeeld (zie onderstaande uitvoer).
Stap 4) Klik met de rechtermuisknop op Junit4AssertionTest.java en klik op Uitvoeren als -> JUnit. U zult de uitvoer zien zoals hieronder weergegeven:
Bovenstaande output toont een succesvol testresultaat, zoals verwacht.


