Junit Assert & Assert er lik med eksempel
Hva er Junit Assert?
Assert er en metode som er nyttig for å bestemme bestått eller ikke bestått status for en testsak. Assertmetodene leveres av klassen org.junit.Assert som utvider java.lang.Object-klassen.
Det finnes ulike typer påstander som boolsk, null, identisk osv.
Junit gir en klasse kalt Assert, som gir en haug med påstandsmetoder som er nyttige for å skrive testsaker og for å oppdage testfeil
Påstandsmetodene leveres av klassen org.junit.Assert som strekker seg java.lang.Object klasse.
JUnit Påstå metoder
boolean
Hvis du vil teste de boolske forholdene (sant eller usant), kan du bruke følgende påstandsmetoder
- assertTrue(tilstand)
- assertFalse(tilstand)
Her er tilstanden en boolsk verdi.
Null objekt
Hvis du vil sjekke startverdien til et objekt/variabel, har du følgende metoder:
- assertNull(objekt)
- 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 samme java-objekt), eller forskjellige.
- assertSame(forventet, faktisk), Det vil returnere sant hvis forventet == faktisk
- assertNotSame (forventet, faktisk)
Påstå lik
Hvis du ønsker å teste likhet mellom to objekter, har du følgende metoder
- assertEquals (forventet, faktisk)
Det vil returnere sant hvis: forventet.lik( faktisk ) returnerer sant.
Assert Array er lik
Hvis du ønsker å teste likhet av arrays, 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 det som gitt nedenfor:
- assertEquals(forventet[i],faktisk[i])
- assertArrayEquals(expected[i],faktisk[i])
Feilmelding
Hvis du vil kaste en påstandsfeil, har du det mislykkes() som alltid resulterer i en feilvurdering.
- Fail(melding);
Du kan ha påstandsmetode med en ekstra String parameter som den første parameteren. Denne strengen vil bli lagt til i feilmeldingen hvis påstanden mislykkes. F.eks mislykkes ( melding ) kan skrives som
- assertEquals( melding, forventet, faktisk)
JUnit assertEquals
Du har assertEquals(a,b) som er avhengig av er lik () metoden til Object-klassen.
- Her vil det bli vurdert som a.lik( b ).
- Her brukes klassen som testes for å bestemme en passende likhetsrelasjon.
- Hvis en klasse ikke overstyrer er lik () Metode av Objekt klasse, vil den få standardoppførselen til er lik () metode, dvs. objektidentitet.
If a og b er primitiver som f.eks byte, int, booleanosv., vil følgende gjøres for assertEquals(a,b):
a og b vil bli konvertert til deres tilsvarende innpakningsobjekttype (Byte, heltall, booleanosv.), og deretter a.lik( b ) vil bli vurdert.
For eksempel: Tenk på at de nedenfor nevnte strengene har samme verdier, la oss teste det med assertTrue
String obj1="Junit"; String obj2="Junit"; assertEquals(obj1,obj2);
Ovenfor påstandssetning vil returnere sant ettersom obj1.equals(obj2) returnerer sant.
Flytepunktpåstander
Når du vil sammenligne typer flyttall (f.eks dobbelt or flyte), trenger du en ekstra nødvendig parameter Delta for å unngå problemer med avrundingsfeil mens du sammenligner med flyttall.
Påstanden vurderes som gitt nedenfor:
- Math.abs( forventet – faktisk ) <= delta
For eksempel:
assertEquals(aDoubleVerdi, en annenDoubleVerdi, 0.001 )
JUnit Påstå eksempel
Nedenfor eksempel demonstrerer hvordan du hevder en betingelse ved å bruke JUnit hevde metoder.
La oss lage en enkel testklasse kalt Junit4AssertionTest.java og en testløperklasse TestRunner.java.
Du vil lage noen få variabler og viktige påstandsutsagn i JUnit.
I dette eksemplet vil du kjøre testklassen vår ved å bruke TestRunner.java
Trinn 1) La oss lage en klasse som dekker alle viktige uttalelsesmetoder 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);
}
}
Trinn 2) Du må opprette en testløperklasse for å utføre klassen over:
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());
}
}
Trinn 3) La oss analysere forventet utgang trinn for trinn:
Vurder alle påstandsutsagn én etter én:
- assertEquals(streng1,streng2);
Sammenlign nå string1=" Junit" med string2=" Junit" med lik metode for objektklassen. Erstatter assertEquals-metoden fra java.lang.Object.equals()-metoden:
string1.equals(string2)=> returnerer sant
Så assertEquals(streng1,streng2) kommer tilbake sant.
- assertSame(streng3, streng4);
"assertSame()" funksjonalitet er å sjekke 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å vil assertSame(string3, string4) returnere sant.
- assertNotSame(streng1, streng3);
"assertNotSame()" funksjonalitet er å sjekke at de to objektene ikke refererer til det samme objektet.
Siden string1=”Junit” og string3=”test” betyr at både string1 og string3 er av forskjellige typer, så vil assertNotSame(string1, string3) returnere sant.
- assertNotNull(streng1);
"assertNotNull()" funksjonalitet er å sjekke at et objekt ikke er null.
Siden string1= “Junit” som er en ikke-null verdi, så vil assertNotNull(string1) returnere sant.
- assertNull(streng5);
"assertNull()" funksjonalitet er å sjekke at et objekt er null.
Siden streng5= null, som er en nullverdi, vil assertNull(streng5) returnere sant.
- assertTrue(variabel1
"assertTrue()" funksjonalitet er å sjekke at en betingelse er sann.
Siden variabel1=1 og variabel2=2, som viser den variabel1 sant.
- assertArrayEquals(airethematicArrary1, airethematicArrary2);
"assertArrayEquals()" funksjonalitet er å sjekke at den forventede matrisen og den resulterende matrisen er like. Typen Array kan være int, lang, kort, char, byte eller java.lang.Object.
Siden airethematicArrary1 = { 1, 2, 3 } og airethematicArrary2 = { 1, 2, 3 } som viser at begge arrayene er like, så vil assertArrayEquals(airethematicArrary1, airethematicArrary2) returnere sant
Siden alle syv hevder uttalelser av Junit4AssertionTest.java klasse returnerer true, derfor vil den returnere en vellykket test når du kjører testen assert-klassen. (se utgangen nedenfor)
Trinn 4) Høyreklikk på Junit4AssertionTest.java og klikk på runAs->JUnit. Du vil se utgangen som gitt nedenfor:
Utgangen ovenfor 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 eksempler på påstander. Som viser at hvis alle assert-setninger returnerer sant, vil test-GUI returnere et sant resultat, og hvis enkelttesten mislykkes, vil den returnere et mislykket resultat.

