Tarkvaraarenduses on ühikutestimine protsess, mis eraldab ja testib rakenduse spetsiaalseid jaotisi. Üksused on nende spetsiaalsete jaotiste ametlik termin. Teie Java-rakenduses on ühik meetod.

Java arendajatele on saadaval palju üksuse testimise raamistikke. Kõige populaarsemate raamistike hulgas on JUnit 5.

Miks on ühikutestimine oluline?

Kui olete kunagi kirjutanud silumisavaldusi, et printida ja kontrollida muutuja väärtust, õnnitleme! olete loonud ühikutesti. See äravisatav koodiosa oli vajalik, kuna te ei saanud soovitud väljundit.

Aga mis siis, kui saite soovitud väljundi ja kood sisaldas ikkagi kuskil viga? Võite rakenduse juurutada ja see viga võib hiljem põhjustada turvarikkumise. Kasutajate andmeid talletavate rakenduste puhul on panused kõrged, kui toimub turvarikkumine.

Ühiktestimine sihib teie rakenduse kõiki jaotisi – olenemata sellest, kas see põhjustab praegu tõrke või mitte. Seetõttu on ühikutestimisel oluline roll hea tarkvara turvalisus.

Mis on JUnit 5?

JUnit 5 on midagi enamat kui lihtsalt üks üksuse testimise raamistik. Sellel on mitu alamprojekti, nimelt JUnit Platform, JUnit Jupiter ja JUnit Vintage. Kõigil neil kolmel komponendil on ainulaadsed moodulid, mis töötavad koos Java programmeerijate testimise parandamiseks.

JUnit 5 platvorm on saadaval Java integreeritud arendusplatvormide (IDE) uusimates versioonides. Java IDE-d, mis toetavad JUnit 5, on järgmised:

  • IntelliJ IDEE
  • Varjutus
  • NetBeans
  • Visual Studio kood

Ühiktestide loomine JUnit 5 abil

See näidisprogramm kasutab JUnit 5, et luua lihtsas kalkulaatorirakenduses mitu ühikutesti.

Kalkulaatori klass

pakett rakendus;

avalikklassKalkulaator{
avalikstaatilineintlisama(int number1, int number2){
tagasi arv1 + arv2;
}

avalikstaatilineintlahutada(int number1, int number2){
tagasi number1 - number2;
}

avalikstaatilineintkorrutada(int number1, int number2){
tagasi arv1 * arv2;
}

avalikstaatilineintjagama(int number1, int number2){
tagasi arv1 / number2;
}
}

The Java klass ülaltoodud teostab neli staatilist toimingut: liitmine, lahutamine, korrutamine ja jagamine. Iga meetod võtab kaks täisarvu argumenti ja tagastab ühe täisarvu väärtuse.

JUnit 5 katseklass

pakett test;

importidastaatiline org.junit. Kinnita.*;
importida rakendus. Kalkulaator;
importidaorg.junit.Testi;

avalikklassKalkulaatori test{
@Test
avaliktühinetestLisa(){
kinnitama Võrdsed(7, Kalkulaator.lisama(3, 4));
}

@Test
avaliktühinetestLahutada(){
kinnitama Võrdsed(6, Kalkulaator.lahutada(9, 3));
}

@Test
avaliktühinetestMultiply(){
kinnitama Võrdsed(10, Kalkulaator.korrutada(5, 2));
}

@Test
avaliktühinetestDivide(){
kinnitama Võrdsed(2, Kalkulaator.jaga(4, 2));
}
}

Kalkulaatori test tutvustab kahte olulist mõistet: @Test annotatsioon ja assertEquals() meetod. Annotatsioon @Test näitab, et selle all olev meetod on testmeetod. Ülaltoodud testiklassis on neli testimeetodit, üks iga kalkulaatori toimingu jaoks.

Kõik testimismeetodid kasutavad assertEquals() meetodit. See meetod kasutab kahte kohustuslikku argumenti ja valikulist kolmandat argumenti. Esimene ülaltoodud meetodile assertEquals() antud argument on oodatud tulemus ja teine ​​argument on meetod (või ühik), mida soovite hinnata.

Klassil CalculatorTest pole põhimeetodit, kuid JUnit @Test annotatsioonid muudavad kõik testimismeetodid käivitatavaks. Klassi CalculatorTest käivitamine eclipse'is loob järgmise liidese:

Nagu näete, on iga katse edukas. Teste on neli ja need kõik jooksid vigade ja tõrgeteta.

Õppeüksuste testimine võib teie karjäärivõimalusi laiendada

Arendajana on tarkvara testimise teadmine kasulik oskus. See parandab kindlasti teie töövoogu ja loodetavasti muudab teie koodi teiste jaoks hõlpsamini kasutatavaks. Siiski on tarkvaraarenduse haru, mis keskendub ainult testimisele. Neid insenere tuntakse tarkvara testijatena.