JUnit apgalvojumu klase satur statisku metožu kolekciju, kas ļauj veikt vienību testus. Apgalvojumi ir viena no JUnit galvenajām funkcijām. Šajā klasē ir vairāk nekā piecdesmit dažādas metodes. Daži apgalvojumu klases testi neizdosies, ja nosacījums ir patiess, savukārt citi neizdosies, ja nosacījums ir nepatiess.
Apgalvojumu klasē ir arī daudzas pārslogotas metodes. Katrai apgalvojuma metodei ir vismaz divas pārslogotas metodes. Atklājiet dažas no populārākajām Assertions klases metodēm un uzziniet, kā tās izmantot vienību testu veikšanai.
AssertEquals metode
JUnit 5 assertEquals metodei ir vairāk nekā desmit variācijas. Šī metode ir viena no populārākajām Assertions klases metodēm. Vienai assertEquals metodes variācijai ir paredzēta paredzamā vērtība un funkcija, kuru vēlaties novērtēt (faktiskā vērtība). Otrajam galvenajam variantam ir nepieciešams papildu trešais arguments. Šis ir kļūdas ziņojums, kas tiks parādīts, ja JUnit vienības pārbaude neizdodas.
Metodes assertEquals pārslodze notiek ar dažādiem datu tipiem. Dažas assertEquals pārslodzes metodes izmanto ceturto argumentu, ko sauc par delta. Citas versijas kļūmju virkni aizstāj ar piegādātāja funkcionālo interfeisu a. formā
lambda izteiksme.AssertionsMethods Java klase
iepakojums com.program;
publiskiklasēApgalvojumiMetodes{
publiskistatisksstarptkvadrāts(starpt num){
atgriezties num * num;
}
}
Iepriekš minētajai Java klasei AssertionsMethods ir viena metode, ko sauc par kvadrātu. Kvadrātveida metode ņem veselu skaitļu vērtību un atgriež kvadrātu. Lai pārbaudītu kvadrātveida metodi un jebkuru turpmāko metodi no AssertionsMethods klases, jums būs jāizveido JUnit testa gadījums.
AssertionsMethodsTest JUnit testa gadījums
iepakojums com.program;
importsstatisksorg.junit.Apliecināt.assertEquals;
importsstatisksorg.junit.jupiters.api.Apgalvojumi.*;importsorg.junit.jupiters.api.Pārbaude;
klasēApgalvojumiMetodesPārbaude{
@Pārbaude
nederīgstestSquare(){
apgalvoEquals(25, Apgalvojumu metodes.kvadrāts(5));
assertEquals (36, AssertionMethods.square (6), "Jūsu kvadrāta vērtības nesakrita.");
assertEquals (49, AssertionMethods.square (7), () ->"Jūsu kvadrāta vērtības nesakrita.");
}
}
Metode testSquare() izmanto trīs assertEquals() variācijas, lai pārbaudītu square() metodi. Katrs assertEquals() ir veiksmīgs, jo visas paredzamās vērtības atbilst faktiskajām vērtībām, kas tiek atgrieztas ar square() metodi.
AssertNull metode
JUnit Assertions klasei ir tieši trīs assertNull metodes. Katra no šīm metodēm izmanto vienu vai vairākus argumentus un apstiprina, vai dotais objekts ir nulle. Ja dotais objekts nav nulle, tad pārbaude neizdosies.
@Pārbaude
publiskinederīgstestStringValue(){
Stīga stringValue = null;
assertNull (stringValue);
assertNull (stringValue, "Jūsu virknes vērtība nav nulle");
assertNull (stringValue, () ->"Jūsu virknes vērtība nav nulle");
}
Pirmā metode assertNull() ņem virknes objektu un pārbauda, vai tas ir nulle. Otrā metode assertNull() izmanto virknes objektu un virknes ziņojumu, kas tiek parādīts, ja pārbaude neizdodas. Trešā un pēdējā metode assertNull() izmanto objektu, kuru vēlaties novērtēt, un piegādātāja funkcionālo saskarni.
Iepriekš minētajā testa gadījumā piegādātāja saskarne darbojas kā lambda izteiksmes piešķiršanas mērķis. Ja pārbaude neizdodas, lambda izteiksme ģenerē kļūdas ziņojumu.
Apliecināt patieso metodi
Metodei assertTrue() ir sešas variācijas. Katra metode apstiprina, vai konkrētais nosacījums ir patiess. Ja nosacījums assertTrue() ir nepatiess, pārbaude neizdosies.
@Pārbaude
nederīgstestEvenNumbers(){
starpt num1 = 10;
starpt num2 = 16;
starpt num3 = 26;
assertTrue (num1 < num2);
assertTrue (num3 > num2, "Jūsu nosacījums nav patiess.");
assertTrue (num1 < num3, () ->" Jūsu nosacījums nav patiess.");
apgalvotTrue(() -> skaits1%2 == 0);
apgalvotTrue(() -> num2%2 == 0, "Jūsu vērtība nav pāra skaitlis.");
apgalvotTrue(() -> num3%2 == 0, () ->"Jūsu vērtība nav pāra skaitlis.");
}
Metode testEvenNumbers() parāda, kā izmantot visas sešas assertTrue() metodes. Visas iepriekš minētās metodes ir patiesas, tāpēc šī vienības pārbaude tiek izpildīta bez kļūmēm vai kļūdām.
- assertTrue (būla nosacījums): šī metode izmanto Būla nosacījumu un apstiprina, vai tā ir patiesa. Šīs metodes piemērs iepriekš minētajā kodā apstiprina, ja pirmā veselā skaitļa vērtība ir mazāka par otro.
- assertTrue (būla nosacījums, virknes ziņojums): šī metode izmanto Būla nosacījumu, lai pārbaudītu, un virkni, kas tiek parādīta, ja tā ir nepatiesa.
- assertTrue (būla nosacījums, piegādātājs
messageSupplier): šī metode izmanto Būla un piegādātāja funkcionālo saskarni kā lambda izteiksmi. Ziņojuma piegādātājs satur virkni, kas jāparāda, ja Būla nosacījums ir nepatiess. - assertTrue (BooleanSupplier booleanSupplier): šī metode izmanto BooleanSupplier funkcionālo saskarni lambda izteiksmes veidā, kas tiek novērtēta kā patiesa vai nepatiesa. Šīs metodes piemērā kodā tiek izmantota lambda izteiksme. Tas pārbauda pirmā veselā skaitļa atlikušo daļu, kas dalīta ar divi, lai noteiktu, vai tā ir pāra vai nepāra.
- assertTrue (BooleanSupplier booleanSupplier, String ziņojums): šī metode izmanto BooleanSupplier funkcionālo saskarni lambda izteiksmes veidā. Ja BooleanSupier nav patiess, drukāšanai ir nepieciešams arī virknes ziņojums.
- assertTrue (BooleanSupplier booleanSupplier, Piegādātājs
messageSupplier): šī metode izmanto BooleanSupplier funkcionālo interfeisu, lai apstiprinātu. Tam ir nepieciešams arī piegādātāja funkcionālais interfeiss, kas ir lambda izteiksme, kas izdrukās virknes vērtību, ja pārbaude neizdosies.
Apgalvojuma viltus metode
Metode assertFalse() ir pretēja metodei assertTrue(). Šī metode novērtē doto nosacījumu, lai noskaidrotu, vai tas ir nepatiess. Ja dotais nosacījums ir patiess, tad assertFalse() tests neizdosies. Metodei assertFalse() ir arī seši varianti, kas pieņem tādus pašus argumentus kā to assertTrue() ekvivalenti.
@Pārbaude
nederīgstestNotEvenNumbers(){
starpt num1 = 11;
starpt num2 = 17;
starpt num3 = 27;
assertFalse (num2 < num1);
assertFalse (num2 > num3, " Jūsu nosacījums nav nepatiess.");
assertFalse (num3 < num1, () ->" Jūsu nosacījums nav nepatiess.");
apgalvotFalse(() -> skaits1%2 == 0);
apgalvotFalse(() -> num2%2 == 0, "Jūsu vērtība ir pāra skaitlis.");
apgalvotFalse(() -> num3%2 == 0, () ->"Jūsu vērtība ir pāra skaitlis.");
}
Sešas metodes assertFalse() metodē testNotEvenNumbers() visas rezultējas false, kas nozīmē, ka assertFalse() testi ir veiksmīgi.
Vienības pārbaudes priekšrocības
Vienību testēšana ir programmatūras izstrādes procesa neatņemama sastāvdaļa. Lieli programmatūras projekti neizdodas dažādu iemeslu dēļ, sākot no komandām, kas pie tiem strādā, līdz izstrādes pieejām.
Vienības testēšanas mērķis ir novērst programmatūras kļūmes, nodrošinot agrīnu kļūdu noteikšanu. Tas prasa komandām izstrādāt skaidras specifikācijas, uzlabot programmatūras dizainu, izmantojot kļūdu dokumentāciju, un nodrošināt atbalstu programmatūras uzturēšanai.
Vienību testēšana nav vienīgā programmatūras testēšanas pieeja, kas jums jāizmanto izstrādes dzīves ciklā, tā ir tikai ļoti laba vieta, kur sākt.