Junit Assert & AssertEquals med eksempel

Indholdsfortegnelse:

Anonim

Hvad er Junit Assert?

Assert er en metode, der er nyttig til bestemmelse af godkendt eller ikke-godkendt status for en testsag. Assert-metoderne leveres af klassen org.junit.Assert, der udvider java.lang.Object-klassen.

Der er forskellige typer påstande som boolsk, nul, identisk osv.

Junit leverer en klasse ved navn Assert, som giver en række påstande metoder, der er nyttige til at skrive testsager og til at opdage testfejl

Påstandsmetoderne leveres af klassen org.junit.Assert, der udvider java.lang.Object- klassen.

I denne vejledning lærer du-

  • JUnit Assert-metoder
  • Boolsk
  • Nul objekt
  • Identisk
  • Påstå er lig
  • Assert Array er lig
  • Fejlmeddelelse
  • JUnit hævder ligestilling
  • Påstande om flydende punkt
  • Eksempel på JUnit Assert

JUnit Assert-metoder

Boolsk

Hvis du vil teste de boolske forhold (sande eller falske), kan du bruge følgende påstandsmetoder

  1. assertTrue (tilstand)
  2. assertFalse (tilstand)

Her er betingelsen en boolsk værdi.

Nul objekt

Hvis du vil kontrollere den oprindelige værdi af et objekt / en variabel, har du følgende metoder:

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

Her er objektet Java-objekt, fx assertNull (faktisk);

Identisk

Hvis du vil kontrollere, om objekterne er identiske (dvs. at sammenligne to referencer til det samme java-objekt) eller forskellige.

  1. assertSame (forventet, faktisk), Det returnerer sandt, hvis det forventes == faktisk
  2. assertNotSame (forventet, faktisk)

Påstå er lig

Hvis du vil teste lighed mellem to objekter, har du følgende metoder

  • assertEquals (forventet, faktisk)

Det returnerer sandt, hvis: forventet. Ligestilling (faktisk) returnerer sandt.

Assert Array er lig

Hvis du vil teste lighed mellem arrays, har du følgende metoder som angivet nedenfor:

  • 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 kaste en påstandsfejl, har du fail (), der altid resulterer i en fail-dom.

  • Fejl (meddelelse)

Du kan have påstandsmetode med en ekstra strengparameter som den første parameter. Denne streng tilføjes i fejlmeddelelsen, hvis påstanden mislykkes. F.eks. Fail (besked) kan skrives som

  • assertEquals (besked, forventet, faktisk)

JUnit hævder ligestilling

Du har assertEquals (a, b), der er afhængig af ligemetoden ( ) i Object-klassen.

  • Her vil det blive vurderet som a. Ligestilling (b).
  • Her bruges den testede klasse til at bestemme en passende ligestillingsrelation.
  • Hvis en klasse ikke tilsidesætter metoden equals () for Object- klassen, får den standardadfærd for metoden equals () , dvs. objektidentitet.

Hvis a og b er primitive som byte , int , boolean osv., Vil følgende gøres for assertEquals (a, b):

a og b konverteres til deres ækvivalente wrapper-objekttype ( Byte, Integer , Boolean osv.), og derefter evalueres a.ækvivalenter (b) .

For eksempel: Overvej nedenstående strenge med samme værdier, lad os teste det ved hjælp af assertTrue

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

Ovenstående erklæring returnerer sandt, da obj1.equals (obj2) returnerer true.

Påstande om flydende punkt

Når du vil sammenligne flydende punkttyper (f.eks. Dobbelt eller flyde ), har du brug for en yderligere påkrævet parameter delta for at undgå problemer med afrundingsfejl, mens du foretager sammenligninger med flydende punkter.

Påstanden evalueres som angivet nedenfor:

  • Math.abs (forventet - faktisk) <= delta

For eksempel:

assertEquals (aDoubleValue, anotherDoubleValue, 0.001)

Eksempel på JUnit Assert

Nedenstående eksempel viser, hvordan man hævder en tilstand ved hjælp af JUnit assert-metoder.

Lad os oprette en simpel testklasse ved navn Junit4AssertionTest.java og en testkører klasse TestRunner.java .

Du opretter få variabler og vigtige erklæringer i JUnit.

I dette eksempel udfører du vores testklasse ved hjælp af TestRunner.java

Trin 1) Lad os oprette en klasse, der dækker alle vigtige metoder til at hævde udsagn i junit:

Junit4AssertionTest.java

pakke guru99.junit;importer statisk org.junit.Assert. *;import org.junit.Test;offentlig klasse Junit4AssertionTest {@Prøveoffentlig ugyldig testAssert () {// Variabel erklæringString string1 = "Junit";String string2 = "Junit";String string3 = "test";String string4 = "test";Strengstreng5 = null;int-variabel1 = 1;int variabel2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// Påstå udsagnassertEquals (streng1, streng2);assertSame (string3, string4);assertNotSame (streng1, streng3);assertNotNull (streng1);assertNull (streng5);assertTrue (variabel1 

Trin 2) Du skal oprette en testløberklasse, der skal udføres over klassen:

TestRunner.java

pakke guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;offentlig klasse TestRunner {public static void main (String [] args) {Resultat resultat = JUnitCore.runClasses (Junit4AssertionTest.class);for (Failure failure: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Resultat ==" + result.wasSuccessful ());}}

Trin 3) Lad os analysere forventet output trin for trin:

Overvej alle erklæringer en efter en:

  1. assertEquals (streng1, streng2);

Sammenlign nu string1 = "Junit" med string2 = "Junit" med samme metode som objektklassen. Udskiftning af assertEquals-metoden fra java.lang.Object.equals () -metoden:

string1.equals (string2) => returnerer true

Så assertEquals (string1, string2) returnerer true .

  1. assertSame (string3, string4);

"assertSame ()" funktionalitet er at kontrollere, at de to objekter henviser til det samme objekt.

Da string3 = "test" og string4 = "test" betyder, at både string3 og string4 er af samme type, så assertSame (string3, string4) returnerer true .

  1. assertNotSame (streng1, streng3);

"assertNotSame ()" funktionalitet er at kontrollere, at de to objekter ikke henviser til det samme objekt.

Da string1 = "Junit" og string3 = "test" betyder, at både string1 og string3 er af forskellige typer, så assertNotSame (string1, string3) returnerer true .

  1. assertNotNull (streng1);

"assertNotNull ()" funktionalitet er at kontrollere, at et objekt ikke er nul.

Da string1 = "Junit", som er en ikke-nul-værdi, vil assertNotNull (string1) returnere true .

  1. assertNull (streng5);

"assertNull ()" funktionalitet er at kontrollere, at et objekt er nul.

Da string5 = null, som er en null-værdi, vil assertNull (string5) returnere true .

  1. assertTrue (variabel1

"assertTrue ()" - funktionalitet er at kontrollere, at en betingelse er sand.

Da variabel1 = 1 og variabel2 = 2, hvilket viser, at variabel1 sandt .

  1. assertArrayEquals (airethematicArrary1, airethematicArrary2);

"assertArrayEquals ()" funktionalitet er at kontrollere, at den forventede matrix og den resulterede matrix er ens. Arraytypen kan være int, lang, kort, char, byte eller java.lang.Object.

Da airethematicArrary1 = {1, 2, 3} og airethematicArrary2 = {1, 2, 3} som viser, at begge arrays er ens, så assertArrayEquals (airethematicArrary1, airethematicArrary2) vil returnere true

Da alle syv påståede udsagn fra Junit4AssertionTest.java- klassen vender tilbage til sandhed, returnerer den derfor en vellykket test, når du udfører testassertklassen . (se output nedenfor)

Trin 4) Højreklik på Junit4AssertionTest.java og klik på runAs-> JUnit. Du vil se output som angivet nedenfor:

Ovenstående output viser et vellykket testresultat som forventet.

Resumé:

I denne vejledning lærte du alle vigtige typer påståelsesmetoder leveret af JUnit. Du har også set eksemplerne på udsagn. Hvilket viser, at hvis alle påståede udsagn vender tilbage til sandt, returnerer test-GUI et sandt resultat, og hvis den enkelte test mislykkes, returnerer det et mislykket resultat.