JUnit Assertions Class inneholder en samling statiske metoder som lar deg utføre enhetstester. Påstander er en av JUnits kjernefunksjoner. Denne klassen har over femti forskjellige metoder. Noen Assertions-klassetester vil mislykkes hvis en betingelse er sann, mens andre vil mislykkes hvis en betingelse er usann.

Assertions-klassen har også mange overbelastede metoder. Hver påstandsmetode har minst to overbelastede metoder. Oppdag noen av de mer populære metodene i Assertions-klassen og finn ut hvordan du bruker dem til å utføre enhetstester.

AssertEquals-metoden

JUnit 5 assertEquals-metoden har over ti varianter. Denne metoden er en av de mer populære metodene i Assertions-klassen. En variant av assertEquals-metoden tar en forventet verdi og funksjonen du ønsker å evaluere (faktisk verdi). En andre hovedvariant tar et ekstra tredje argument. Dette er en feilmelding som vises hvis JUnit enhet test mislykkes.

Overbelastningen av assertEquals-metoden skjer med forskjellige datatyper. Noen assertEquals-overbelastningsmetoder tar et fjerde argument kalt delta. Andre versjoner erstatter feilstrengen med et leverandørfunksjonelt grensesnitt, i form av en

lambda uttrykk.

AssertionsMethods Java Class

pakke com.program;

offentligklassePåstandsmetoder{
offentligstatiskinttorget(int num){
komme tilbake num * num;
}
}

AssertionsMethods Java-klassen ovenfor har en enkelt metode kalt square. Kvadratmetoden tar en heltallsverdi og returnerer kvadratet. For å teste kvadratmetoden og enhver fremtidig metode fra AssertionsMethods-klassen må du lage en JUnit-testcase.

AssertionsMethodsTest JUnit Test Case

pakke com.program;

importstatiskorg.junit. Påstå.assertEquals;
importstatiskorg.junit.jupiter.api.Påstander.*;

importorg.junit.jupiter.api.Test;

klassePåstandsmetoderTest{
@Test
tomromtestSquare(){
assertEquals(25, Påstandsmetoder.torget(5));
assertEquals (36, AssertionMethods.square (6), "Kvadratverdiene dine samsvarte ikke.");
assertEquals (49, AssertionMethods.square (7), () ->"Kvadratverdiene dine samsvarte ikke.");
}
}

TestSquare()-metoden bruker tre varianter av assertEquals() for å teste square()-metoden. Hver assertEquals() er en suksess, siden alle de forventede verdiene samsvarer med de faktiske verdiene som returneres av square()-metoden.

AssertNull-metoden

JUnit Assertions-klassen har nøyaktig tre assertNull-metoder. Hver av disse metodene tar ett eller flere argumenter og hevder om det gitte objektet er null. Hvis et gitt objekt ikke er null, vil testen mislykkes.

@Test
offentligtomromtestStringValue(){
String stringValue = null;
assertNull (stringValue);
assertNull (stringValue, "Din strengverdi er ikke null");
assertNull (stringValue, () ->"Din strengverdi er ikke null");
}

Den første assertNull()-metoden tar et strengobjekt og sjekker om det er null. Den andre assertNull()-metoden tar et strengobjekt og en strengmelding for å vise hvis testen mislykkes. Den tredje og siste assertNull()-metoden tar objektet du ønsker å evaluere og et leverandørfunksjonelt grensesnitt.

I testtilfellet ovenfor fungerer leverandørgrensesnittet som et tildelingsmål for et lambda-uttrykk. Lambda-uttrykket genererer en feilmelding hvis testen mislykkes.

The assertTrue Method

AssertTrue()-metoden har seks varianter. Hver metode hevder om en gitt betingelse er sann. Hvis en assertTrue()-tilstand er usann, vil testen mislykkes.

@Test
tomromtestEvenNumbers(){
int num1 = 10;
int nummer2 = 16;
int nummer3 = 26;
assertTrue (nummer1 < num2);
assertTrue (nummer3 > nummer 2, "Tilstanden din er ikke sann.");
assertTrue (nummer1 < nummer3, () ->" Tilstanden din er ikke sann.");
assertTrue(() -> num1%2 == 0);
assertTrue(() -> num2%2 == 0, "Verdien din er ikke et partall.");
assertTrue(() -> num3%2 == 0, () ->"Verdien din er ikke et partall.");
}

TestEvenNumbers()-metoden viser hvordan du bruker alle seks assertTrue()-metodene. Alle metodene ovenfor er sanne, derfor utføres denne enhetstesten uten feil eller feil.

  • assertTrue (boolsk tilstand): denne metoden tar en boolsk tilstand og hevder om den er sann. Eksemplet på denne metoden i koden ovenfor hevder at den første heltallsverdien er mindre enn den andre.
  • assertTrue (boolsk tilstand, strengmelding): denne metoden tar en boolsk tilstand for å teste og en streng for å vise hvis den er usann.
  • assertTrue (boolsk tilstand, leverandør messageSupplier): denne metoden tar et boolsk og et leverandørfunksjonelt grensesnitt, som et lambda-uttrykk. Meldingsleverandøren inneholder en streng som skal vises hvis den boolske betingelsen er falsk.
  • assertTrue (BooleanSupplier booleanSupplier): denne metoden tar et BooleanSupplier funksjonelt grensesnitt, i form av et lambda-uttrykk som evalueres til sant eller usant. Eksemplet på denne metoden i koden bruker et lambda-uttrykk. Den tester resten av det første heltall delt på to for å finne ut om det er partall eller oddetall.
  • assertTrue (BooleanSupplier booleanSupplier, strengmelding): denne metoden tar et BooleanSupplier funksjonelt grensesnitt i form av et lambda-uttrykk. Det krever også en strengmelding for å skrive ut hvis BooleanSupier ikke er sant.
  • assertTrue (BooleanSupplier booleanSupplier, Supplier messageSupplier): denne metoden krever et funksjonelt grensesnitt for BooleanSupplier for å hevde. Det krever også et leverandørfunksjonelt grensesnitt, som er et lambda-uttrykk som vil skrive ut en strengverdi hvis testen mislykkes.

AssertFalse-metoden

AssertFalse()-metoden er det motsatte av assertTrue()-metoden. Denne metoden evaluerer en gitt tilstand for å se om den er usann. Hvis en gitt betingelse er sann, vil assertFalse()-testen mislykkes. AssertFalse()-metoden har også seks varianter som godtar de samme argumentene som deres assertTrue()-motparter.

@Test
tomromtestNotEvenNumbers(){
int num1 = 11;
int nummer2 = 17;
int nummer3 = 27;
assertFalse (nummer2 < num1);
assertFalse (nummer2 > nummer 3, " Tilstanden din er ikke falsk.");
assertFalse (nummer3 < num1, () ->" Tilstanden din er ikke falsk.");
assertFalse(() -> num1%2 == 0);
assertFalse(() -> num2%2 == 0, "Verdien din er et partall.");
assertFalse(() -> num3%2 == 0, () ->"Verdien din er et partall.");
}

De seks assertFalse()-metodene i testNotEvenNumbers()-metoden resulterer alle i false, noe som betyr at assertFalse()-testene er vellykkede.

Fordelene med enhetstesting

Enhetstesting er en integrert del av programvareutviklingsprosessen. Store programvareprosjekter mislykkes av ulike årsaker, alt fra teamene som jobber med dem til utviklingstilnærminger.

Formålet med enhetstesting er å eliminere programvarefeil ved å gi tidlig feildeteksjon. Dette krever at team utvikler klare spesifikasjoner, forbedrer programvaredesign gjennom feildokumentasjon og gir støtte for programvarevedlikehold.

Enhetstesting er ikke den eneste tilnærmingen til programvaretesting du bør bruke i utviklingslivssyklusen din, det er bare et veldig bra sted å starte.