Junit Assert & AssertEquals med eksempel

Innholdsfortegnelse:

Anonim

Hva er Junit Assert?

Assert er en metode som er nyttig for å bestemme godkjent eller ikke-godkjent status for en testsak. Assert-metodene er gitt av klassen org.junit.Assert som utvider java.lang.Object-klassen.

Det er forskjellige typer påstander som boolsk, null, identisk etc.

Junit tilbyr en klasse med navnet Assert, som gir en rekke påstandsmetoder som er nyttige for å skrive testsaker og for å oppdage testfeil

Påstandsmetodene er gitt av klassen org.junit.Assert som utvider java.lang.Object- klassen.

I denne veiledningen vil du lære-

  • JUnit Assert-metoder
  • Boolsk
  • Null objekt
  • Identisk
  • Påstand tilsvarer
  • Assert Array er lik
  • Mislykket melding
  • JUnit hevderEquals
  • Påstander om flytende punkt
  • Eksempel på JUnit Assert

JUnit Assert-metoder

Boolsk

Hvis du vil teste de boolske forholdene (sanne eller falske), kan du bruke følgende påstandsmetoder

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

Her er tilstanden en boolsk verdi.

Null objekt

Hvis du vil kontrollere startverdien til et objekt / en variabel, har du følgende metoder:

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

Her er objektet Java-objekt, f.eks. AssertNull (faktisk);

Identisk

Hvis du vil sjekke om objektene er identiske (dvs. å sammenligne to referanser til det samme java-objektet), eller forskjellige.

  1. assertSame (forventet, faktisk), Det vil returnere sant hvis forventet == faktisk
  2. assertNotSame (forventet, faktisk)

Påstand tilsvarer

Hvis du vil teste likhet mellom to objekter, har du følgende metoder

  • assertEquals (forventet, faktisk)

Det vil returnere sant hvis: forventet. Likhet (faktisk) returnerer sant

Assert Array er lik

Hvis du vil teste likestilling av matriser, har du følgende metoder som gitt nedenfor:

  • assertArrayEquals (forventet, faktisk)

Metoden ovenfor må brukes hvis matriser har samme lengde, for hver gyldig verdi for i , kan du sjekke den som gitt nedenfor:

  • assertEquals (forventet [i], faktisk [i])
  • assertArrayEquals (forventet [i], faktisk [i])

Mislykket melding

Hvis du vil kaste påstand om feil, har du fail () som alltid resulterer i en fail-dom.

  • Feil (melding);

Du kan ha påstandsmetode med en ekstra strengparameter som den første parameteren. Denne strengen blir lagt til i feilmeldingen hvis påstanden mislykkes. F.eks mislykkes (melding) kan skrives som

  • assertEquals (melding, forventet, faktisk)

JUnit hevderEquals

Du har assertEquals (a, b) som er avhengig av metoden equals () i Object-klassen.

  • Her vil det bli vurdert som a. Likheter (b).
  • Her brukes klassen som testes for å bestemme et passende likestillingsforhold.
  • Hvis en klasse ikke overstyrer lik () -metoden til Objektklasse , vil den få standardoppførselen til lik () -metoden, dvs. objektidentitet.

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

a og b blir konvertert til den tilsvarende innpakningstypen ( Byte, Integer , Boolean , etc.), og deretter vil a.ekvivalenter (b) bli evaluert.

For eksempel: Vurder nedenstående strenger som har samme verdier, la oss teste det ved hjelp av assertTrue

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

Ovennevnte uttalelse vil returnere sant når obj1.equals (obj2) returnerer true.

Påstander om flytende punkt

Når du vil sammenligne flytende punkttyper (f.eks. Dobbel eller flyt ), trenger du en ekstra nødvendig parameter delta for å unngå problemer med avrundingsfeil mens du gjør sammenligninger med flytende punkter.

Påstanden evalueres som gitt nedenfor:

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

For eksempel:

assertEquals (aDoubleValue, anotherDoubleValue, 0.001)

Eksempel på JUnit Assert

Eksemplet nedenfor viser hvordan du kan hevde en tilstand ved hjelp av JUnit-påstandsmetoder.

La oss lage en enkel testklasse som heter Junit4AssertionTest.java og en testløperklasse TestRunner.java .

Du vil lage få variabler og viktige uttalelser i JUnit.

I dette eksemplet vil du utføre testklassen vår ved hjelp av TestRunner.java

Trinn 1) La oss lage en klasse som dekker alle viktige metoder for påstandssetning i junit:

Junit4AssertionTest.java

pakke guru99.junit;importer statisk org.junit.Assert. *;import org.junit.Test;offentlig klasse Junit4AssertionTest {@Testoffentlig 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å uttalelserassertEquals (streng1, streng2);assertSame (streng3, streng4);assertNotSame (streng1, streng3);assertNotNull (streng1);assertNull (streng5);assertTrue (variabel1 

Trinn 2) Du må lage en testløperklasse for å utføre over klassen:

TestRunner.java

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

Trinn 3) Lar oss analysere forventet produksjon trinnvis:

Tenk på alle påstandsuttalelser en etter en:

  1. assertEquals (streng1, streng2);

Sammenlign nå string1 = "Junit" med string2 = "Junit" med lik metode for objektklasse. Erstatte metoden assertEquals fra java.lang.Object.equals () -metoden:

string1.equals (string2) => returnerer true

Så assertEquals (string1, string2) vil returnere true .

  1. assertSame (streng3, streng4);

"assertSame ()" - funksjonalitet er å kontrollere at de to objektene refererer til det samme objektet.

Siden string3 = "test" og string4 = "test" betyr at både string3 og string4 er av samme type, så assertSame (string3, string4) vil returnere true .

  1. assertNotSame (streng1, streng3);

"assertNotSame ()" funksjonalitet er å kontrollere at de to objektene ikke refererer til det samme objektet.

Siden streng1 = "Junit" og string3 = "test" betyr at både streng1 og streng3 er av forskjellige typer, så assertNotSame (streng1, streng3) vil returnere true .

  1. assertNotNull (streng1);

"assertNotNull ()" - funksjonalitet er å kontrollere at et objekt ikke er null.

Siden string1 = "Junit" som er en ikke-null verdi, vil assertNotNull (string1) returnere true .

  1. assertNull (streng5);

"assertNull ()" - funksjonalitet er å kontrollere at et objekt er null.

Siden streng5 = null som er en nullverdi, vil assertNull (streng5) returnere sann .

  1. assertTrue (variabel1

"assertTrue ()" - funksjonalitet er å kontrollere at en tilstand er oppfylt.

Siden variabel1 = 1 og variabel2 = 2, som viser at variabel1 sann .

  1. assertArrayEquals (airethematicArrary1, airethematicArrary2);

"assertArrayEquals ()" funksjonalitet er å kontrollere at den forventede matrisen og den resulterende matrisen er like. Type Array kan være int, lang, kort, røye, byte eller java.lang.Object.

Siden airethematicArrary1 = {1, 2, 3} og airethematicArrary2 = {1, 2, 3} som viser at begge matriser er like så assertArrayEquals (airethematicArrary1, airethematicArrary2) vil returnere sant

Siden alle de syv påstandsuttalelsene til Junit4AssertionTest.java- klassen returnerer sanne, vil den derfor returnere en vellykket test når du utfører testen. (se utgangen nedenfor)

Trinn 4) Høyreklikk på Junit4AssertionTest.java og klikk på runAs-> JUnit. Du vil se utdataene som gitt nedenfor:

Over output viser et vellykket testresultat som forventet.

Sammendrag:

I denne opplæringen lærte du alle viktige typer påstandsmetoder levert av JUnit. Du har også sett eksemplene på uttalelser. Som viser at hvis alle påstandssetninger blir sanne, vil testgrensesnittet returnere et sant resultat, og hvis den enkelte testen mislykkes, vil den returnere et mislykket resultat.