Junit Assert & AssertEquals met voorbeeld

Inhoudsopgave:

Anonim

Wat is Junit Assert?

Assert is een methode die nuttig is om de Pass of Fail-status van een testcase te bepalen. De assert-methoden worden geleverd door de klasse org.junit.Assert die de klasse java.lang.Object uitbreidt.

Er zijn verschillende soorten beweringen zoals Boolean, Null, Identical etc.

Junit biedt een klasse met de naam Assert, die een aantal assertiemethoden biedt die nuttig zijn bij het schrijven van testcases en om testfouten te detecteren

De assert-methoden worden geleverd door de klasse org.junit.Assert die de klasse java.lang.Object uitbreidt .

In deze tutorial leer je-

  • JUnit Assert-methoden
  • Boolean
  • Null-object
  • Identiek
  • Beweren is gelijk
  • Beweren dat array gelijk is aan
  • Mislukt bericht
  • JUnit beweertEquals
  • Beweringen met drijvende komma
  • JUnit Assert Voorbeeld

JUnit Assert-methoden

Boolean

Als u de booleaanse voorwaarden (true of false) wilt testen, kunt u de volgende assert-methoden gebruiken

  1. assertTrue (voorwaarde)
  2. assertFalse (voorwaarde)

Hier is de voorwaarde een booleaanse waarde.

Null-object

Als je de beginwaarde van een object / variabele wilt controleren, heb je de volgende methoden:

  1. assertNull (object)
  2. assertNotNull (object)

Hier is het object een Java-object, bijvoorbeeld assertNull (actueel);

Identiek

Als u wilt controleren of de objecten identiek zijn (dwz twee verwijzingen naar hetzelfde java-object vergelijken), of verschillend.

  1. assertSame (verwacht, actueel), het zal true retourneren indien verwacht == actueel
  2. assertNotSame (verwacht, actueel)

Beweren is gelijk

Als je de gelijkheid van twee objecten wilt testen, heb je de volgende methoden

  • assertEquals (verwacht, werkelijk)

Het zal waar retourneren als: verwacht. Equals (werkelijk) waar retourneert.

Beweren dat array gelijk is aan

Als u de gelijkheid van arrays wilt testen, beschikt u over de volgende methoden, zoals hieronder weergegeven:

  • assertArrayEquals (verwacht, werkelijk)

De bovenstaande methode moet worden gebruikt als arrays dezelfde lengte hebben, voor elke geldige waarde voor i kunt u deze controleren zoals hieronder wordt weergegeven:

  • assertEquals (verwacht [i], actueel [i])
  • assertArrayEquals (verwacht [i], actueel [i])

Mislukt bericht

Als je een assertion-fout wilt genereren, heb je fail () die altijd resulteert in een mislukking.

  • Fail (bericht);

U kunt een assertion-methode hebben met een extra String- parameter als de eerste parameter. Deze tekenreeks wordt toegevoegd aan het foutbericht als de bewering mislukt. Bijv. Mislukt (bericht) kan worden geschreven als

  • assertEquals (bericht, verwacht, actueel)

JUnit beweertEquals

Je hebt assertEquals (a, b) die vertrouwt op de equals () - methode van de Object-klasse.

  • Hier wordt het geëvalueerd als a.equals (b).
  • Hier wordt de klasse die wordt getest, gebruikt om een ​​geschikte gelijkheidsrelatie te bepalen.
  • Als een klasse de methode equals () van de klasse Object niet overschrijft , krijgt deze het standaardgedrag van de methode equals () , dwz objectidentiteit.

Als a en b primitieven zijn zoals byte , int , boolean , etc. dan wordt het volgende gedaan voor assertEquals (a, b):

a en b worden geconverteerd naar hun equivalente wrapper-objecttype ( byte, geheel getal , booleaans , enz.), en vervolgens wordt a.equals (b) geëvalueerd.

Bijvoorbeeld: overweeg onderstaande strings met dezelfde waarden, laten we het testen met assertTrue

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

De bovenstaande assert-instructie retourneert true, aangezien obj1.equals (obj2) true retourneert.

Beweringen met drijvende komma

Als u typen met drijvende komma wilt vergelijken (bijv. Dubbel of zwevend ), hebt u een extra vereiste parameter delta nodig om problemen met afrondingsfouten te voorkomen tijdens het vergelijken van drijvende komma.

De bewering evalueert zoals hieronder weergegeven:

  • Math.abs (verwacht - werkelijk) <= delta

Bijvoorbeeld:

assertEquals (aDoubleValue, anotherDoubleValue, 0.001)

JUnit Assert Voorbeeld

Het onderstaande voorbeeld laat zien hoe u een voorwaarde kunt bevestigen met behulp van de assert-methoden van JUnit.

Laten we een eenvoudige testklasse maken met de naam Junit4AssertionTest.java en een testrunnerklasse TestRunner.java .

U maakt enkele variabelen en belangrijke beweringen in JUnit.

In dit voorbeeld voert u onze testklasse uit met TestRunner.java

Stap 1) Laten we een klasse maken die alle belangrijke assert-statement-methoden in junit omvat:

Junit4AssertionTest.java

pakket guru99.junit;importeer statische org.junit.Assert. *;importeer org.junit.Test;openbare klasse Junit4AssertionTest {@Testopenbare ongeldige testAssert () {// Variabele declaratieString string1 = "Junit";String string2 = "Junit";String string3 = "test";String string4 = "test";String string5 = null;int variabele1 = 1;int variabele2 = 2;int [] airethematicAranted1 = {1, 2, 3};int [] airethematicAranted2 = {1, 2, 3};// Beweren verklaringenassertEquals (string1, string2);assertSame (string3, string4);assertNotSame (string1, string3);assertNotNull (string1);assertNull (string5);assertTrue (variabele1 

Stap 2) U moet een testrunner-klasse maken om bovenstaande klasse uit te voeren:

TestRunner.java

pakket guru99.junit;importeer org.junit.runner.JUnitCore;importeer org.junit.runner.Result;import org.junit.runner.notification.Failure;openbare klasse TestRunner {public static void main (String [] args) {Resultaat resultaat = JUnitCore.runClasses (Junit4AssertionTest.class);voor (Failure failure: result.getFailures ()) {System.out.println (failure.toString ());​System.out.println ("Result ==" + result.wasSuccessful ());​​

Stap 3) Laten we de verwachte output stap voor stap analyseren:

Beschouw alle beweringen een voor een:

  1. assertEquals (string1, string2);

Vergelijk nu string1 = "Junit" met string2 = "Junit" met gelijk aan methode van objectklasse. De assertEquals-methode vervangen door de java.lang.Object.equals () -methode:

string1.equals (string2) => geeft true terug

Dus assertEquals (string1, string2) zal true retourneren .

  1. assertSame (string3, string4);

"assertSame ()" functionaliteit is om te controleren of de twee objecten naar hetzelfde object verwijzen.

Aangezien string3 = "test" en string4 = "test" betekent dat string3 en string4 van hetzelfde type zijn, dus assertSame (string3, string4) zal true retourneren .

  1. assertNotSame (string1, string3);

"assertNotSame ()" functionaliteit is om te controleren of de twee objecten niet naar hetzelfde object verwijzen.

Aangezien string1 = "Junit" en string3 = "test" betekent dat zowel string1 als string3 van verschillende typen zijn, dus assertNotSame (string1, string3) zal true retourneren .

  1. assertNotNull (string1);

"assertNotNull ()" functionaliteit is om te controleren of een object niet null is.

Aangezien string1 = "Junit" wat een niet-null-waarde is, zal assertNotNull (string1) true retourneren .

  1. assertNull (string5);

"assertNull ()" functionaliteit is om te controleren of een object null is.

Aangezien string5 = null wat een null-waarde is, zal assertNull (string5) true retourneren .

  1. assertTrue (variabele1

"assertTrue ()" functionaliteit is om te controleren of een voorwaarde waar is.

Aangezien variabele1 = 1 en variabele2 = 2, wat aangeeft dat de voorwaarde van variabele1 true retourneren .

  1. assertArrayEquals (airethematicAranted1, airethematicAranted2);

"assertArrayEquals ()" -functionaliteit is om te controleren of de verwachte array en de resulterende array gelijk zijn. Het type Array kan int, long, short, char, byte of java.lang.Object zijn.

Aangezien airethematicArettable1 = {1, 2, 3} en airethematicAranted2 = {1, 2, 3} die toont dat beide arrays gelijk zijn, zal assertArrayEquals (airethematicAranted1, airethematicAranted2) true retourneren

Aangezien alle zeven assert-instructies van de Junit4AssertionTest.java- klasse true retourneren, zal het daarom een ​​succesvolle test retourneren wanneer u de test assert-klasse uitvoert. (zie de output hieronder)

Stap 4) Klik met de rechtermuisknop op Junit4AssertionTest.java en klik op runAs-> JUnit. U ziet de uitvoer zoals hieronder weergegeven:

Bovenstaande output toont een succesvol testresultaat zoals verwacht.

Overzicht:

In deze tutorial heb je alle belangrijke soorten assertiemethoden geleerd die door JUnit worden aangeboden. Je hebt ook de voorbeelden van beweringen gezien. Dat toont aan dat als alle assert-statements waar worden geretourneerd, de test-GUI een waar resultaat zal retourneren en als de enkele test mislukt, zal het een mislukt resultaat retourneren.