Inden for softwareudvikling er enhedstest en proces, der isolerer og tester dedikerede dele af en applikation. Enheder er den formelle betegnelse for disse dedikerede sektioner. I din Java-applikation er en enhed en metode.

Der er mange enhedstestrammer tilgængelige for Java-udviklere. Blandt de bedste rammer er JUnit 5.

Hvorfor er enhedstestning vigtig?

Hvis du nogensinde har skrevet debug-sætninger for at udskrive og kontrollere værdien af ​​en variabel, tillykke; du har oprettet en enhedstest. Denne engangssektion af kode var nødvendig, fordi du ikke modtog det ønskede output.

Men hvad hvis du modtog det ønskede output, og koden stadig indeholdt en fejl et eller andet sted? Du kan implementere programmet, og denne fejl kan resultere i et sikkerhedsbrud senere. For applikationer, der gemmer brugernes data, er indsatsen høj, når der er et sikkerhedsbrud.

Enhedstest retter sig mod hver sektion af din applikation – uanset om den i øjeblikket forårsager en fejl eller ej. Derfor spiller enhedstest en væsentlig rolle i god softwaresikkerhed.

instagram viewer

Hvad er JUnit 5?

JUnit 5 er mere end blot endnu en enhedstestramme. Det har flere delprojekter, nemlig JUnit Platform, JUnit Jupiter og JUnit Vintage. Hver af disse tre komponenter har unikke moduler, som arbejder sammen for at forbedre test for Java-programmører.

JUnit 5-platformen er tilgængelig i de nyeste versioner af de bedste Java Integrated-udviklingsplatforme (IDE). Java IDE'erne, der understøtter JUnit 5, er:

  • IntelliJ IDÉ
  • Formørkelse
  • NetBeans
  • Visual Studio kode

Oprettelse af enhedstests med JUnit 5

Dette eksempelprogram bruger JUnit 5 til at oprette flere enhedstests på en simpel regnemaskineapplikation.

Lommeregner-klassen

pakke app;

offentligklasseLommeregner{
offentligstatiskinttilføje(int nummer 1, int nummer 2){
Vend tilbage num1 + num2;
}

offentligstatiskinttrække fra(int nummer 1, int nummer 2){
Vend tilbage num1 - num2;
}

offentligstatiskintformere sig(int nummer 1, int nummer 2){
Vend tilbage num1 * num2;
}

offentligstatiskintdele(int nummer 1, int nummer 2){
Vend tilbage num1 / num2;
}
}

Det Java klasse ovenfor udfører fire statiske operationer: addition, subtraktion, multiplikation og division. Hver metode tager to heltalsargumenter og returnerer en enkelt heltalsværdi.

JUnit 5-testklassen

pakke prøve;

importerestatisk org.junit. Hævde.*;
importere app. Lommeregner;
importereorg.junit.Prøve;

offentligklasseLommeregnerTest{
@Prøve
offentligugyldigtestTilføj(){
assertEquals(7, Lommeregner.tilføje(3, 4));
}

@Prøve
offentligugyldigtest trække fra(){
assertEquals(6, Lommeregner.trække fra(9, 3));
}

@Prøve
offentligugyldigtestMultiplicer(){
assertEquals(10, Lommeregner.formere sig(5, 2));
}

@Prøve
offentligugyldigtestOpdel(){
assertEquals(2, Lommeregner.dele(4, 2));
}
}

LommeregnerTest introducerer to vigtige begreber: @Prøve anmærkning og assertEquals() metode. @Test-annotationen angiver, at metoden direkte under den er en testmetode. I testklassen ovenfor er der fire testmetoder, en for hver af regnemaskinens operationer.

Alle testmetoder bruger assertEquals() metoden. Denne metode tager to obligatoriske argumenter og et valgfrit tredje argument. Det første argument givet til assertEquals()-metoden ovenfor er det forventede resultat, og det andet argument er den metode (eller enhed), du vil vurdere.

CalculatorTest-klassen har ikke en hovedmetode, men JUnit @Test-annoteringerne gør hver af testmetoderne eksekverbare. Udførelse af CalculatorTest-klassen i eclipse producerer følgende grænseflade:

Som du kan se, er hver test vellykket. Der er fire tests, og de kørte alle uden fejl eller fejl.

Læringsenhedstest kan udvide dine karrieremuligheder

Som udvikler er det en fordel at have viden om, hvordan man tester software. Det vil helt sikkert forbedre din arbejdsgang og forhåbentlig gøre din kode nemmere at bruge for andre. Der er dog en gren af ​​softwareudvikling, der udelukkende fokuserer på test. Disse ingeniører er kendt som softwaretestere.