Kas ir JUnit anotācijas?
JUNIT ANOTĀCIJAS ir īpaša sintaktisko metadatu forma, ko var pievienot Java avota kodam, lai nodrošinātu labāku koda lasāmību un struktūru. Var anotēt mainīgos, parametrus, paketes, metodes un klases. Junit4 tika ieviestas anotācijas, kas Java kodu padara lasāmāku un vienkāršāku. Šī ir lielā atšķirība starp Junit3 un Junit4, ka Junit4 ir balstīta uz anotācijām.
Ar zināšanām par Junit5 anotācijām var viegli iemācīties un ieviest JUnit testu. Zemāk ir saraksts ar svarīgām un bieži izmantotām anotācijām:
S.No. | Anotācijas | Apraksts |
---|---|---|
1. | @Pārbaude | Šī anotācija ir org.junit.TestCase aizstājējs, kas norāda, ka publiskās anulēšanas metodi, kurai tā ir pievienota, var izpildīt kā testa gadījumu. |
2. | @Pirms | Šī anotācija tiek izmantota, ja pirms katra testa gadījuma vēlaties izpildīt kādu paziņojumu, piemēram, priekšnosacījumus. |
3. | @BeforeClass | Šī anotācija tiek izmantota, ja vēlaties izpildīt dažus paziņojumus, pirms visi testa gadījumi, piemēram, testa savienojums, ir jāizpilda pirms visiem testa gadījumiem. |
4. | @Pēc | Šo anotāciju var izmantot, ja pēc katra testa gadījuma vēlaties izpildīt dažus paziņojumus, piemēram, mainīgo atiestatīšanai, pagaidu failu, mainīgo dzēšanai utt. |
5. | @Pēcstundas | Šo anotāciju var izmantot, ja vēlaties izpildīt dažus paziņojumus pēc visiem pārbaudes gadījumiem, piemēram, Resursu atbrīvošana pēc visu testa gadījumu izpildīšanas. |
6. | @ Ignorē | Šo anotāciju var izmantot, ja testa izpildes laikā vēlaties ignorēt dažus apgalvojumus, piemēram, atspējojot dažus testa gadījumus testa izpildes laikā. |
7. | @Test (taimauts = 500) | Šo anotāciju var izmantot, ja testa izpildes laikā vēlaties iestatīt taimautu, piemēram, ja strādājat saskaņā ar kādu SLA (pakalpojumu līmeņa līgumu), un testi ir jāpabeidz noteiktā laikā. |
8. | @Test (paredzams = IllegalArgumentException.class) | Šo anotāciju var izmantot, ja testa izpildes laikā vēlaties rīkoties ar kādu izņēmumu. Piemēram, ja vēlaties pārbaudīt, vai konkrētā metode ir noteikts izņēmums vai nē. |
Šajā apmācībā jūs uzzināsiet
- JUnit anotāciju piemērs
- JUnit Assert klase
- JUnit testa lietu klase
- JUnit TestResult klase
- JUnit Test Suite klase
JUnit anotāciju piemērs
Izveidosim klasi, kas aptver svarīgas JUnit anotācijas ar vienkāršiem drukas paziņojumiem, un izpildīsim to ar testa skrējēja klasi:
1. solis. Apsveriet zemāk java klasi ar dažādām metodēm, kas pievienotas iepriekš uzskaitītajām anotācijām:
JunitAnnotationsExample.java
pakete guru99.junit;importēt statisko org.junit.Assert.assertEquals;importēt statisko org.junit.Assert.assertFalse;importēt java.util.ArrayList;importēt org.junit.After;importēt org.junit.AfterClass;importēt org.junit.Before;importēt org.junit.BeforeClass;importēt org.junit.Iignore;importēt org.junit.Test;public class JunitAnnotationsExample {privāts ArrayListsaraksts;@BeforeClasspublic static void m1 () {System.out.println ("Izmantojot @BeforeClass, izpildīts pirms visiem testa gadījumiem");}@Pirmspublic void m2 () {list = new ArrayList ();System.out.println ("Lietojot @Before anotācijas, izpildītas pirms katras pārbaudes lietas");}@Pēcstundaspublic static void m3 () {System.out.println ("Izmantojot @AfterClass, izpildīts pēc visiem pārbaudes gadījumiem");}@Pēcpublic void m4 () {saraksts.skaidrs ();System.out.println ("Izmantojot @After, izpildīts pēc katra testa gadījuma");}@Pārbaudepublic void m5 () {list.add ("tests");assertFalse (list.isEmpty ());assertEquals (1, saraksts.izmērs ());}@ Ignorētpublic void m6 () {System.out.println ("Izmantojot @Ignore, šī izpilde tiek ignorēta");}@Test (taimauts = 10)public void m7 () {System.out.println ("Izmantojot @Test (taimauts), to var izmantot, lai izpildītu taimautu JUnit4 testa gadījumā");}@Test (paredzams = NoSuchMethodException.class)public void m8 () {System.out.println ("Izmantojot @Test (paredzams), tā izpildes laikā pārbaudīs, vai nav norādīts izņēmums");}}
2. solis) izveidosim testa skrējēju klasi, lai izpildītu iepriekšminēto testu:
TestRunner.java
pakete guru99.junit;importēt org.junit.runner.JUnitCore;importēt org.junit.runner.Result;importēt org.junit.runner.notification.Failure;publiskā klase TestRunner {public static void main (String [] args) {Rezultāta rezultāts = JUnitCore.runClasses (JunitAnnotationsExample.class);par (Neveiksmes kļūme: result.getFailures ()) {System.out.println (fail.toString ());}System.out.println ("Result ==" + result.wasSuccessful ());}}
Gaidāmais Rezultāts
- Visi testa gadījumi tiks izpildīti pa vienam, un visus izdrukātos paziņojumus var redzēt konsolē.
- Kā minēts iepriekš tabulā @Before, @BeforeClass [metode m1 () un m2 ()] tiks izpildītas attiecīgi pirms katra un pirms visiem testa gadījumiem.
- Tādā pašā veidā @ after, @ afterClass (metode m3 () un m4 ()) tiks izpildīta attiecīgi pēc katra un pēc visiem testa gadījumiem. @ignore (metode m6 ()) tiks uzskatīta par testa ignorēšanu.
Detalizēti analizēsim iepriekš java klasē izmantotos testa gadījumus:
- Apsveriet metodi m5 (), kā norādīts zemāk:
@Pārbaudepublic void m5 () {list.add ("tests");assertFalse (list.isEmpty ());assertEquals (1, saraksts.izmērs ());}
Iepriekš aprakstītajā metodē, pievienojot virkni mainīgajam "list"
- list.isEmpty () atgriezīs false.
- assertFalse (list.isEmpty ()) jāatgriež true.
- Rezultātā testa lieta izturēs .
Tā kā sarakstā esat pievienojis tikai vienu virkni, tā izmērs ir viens.
- list.size () jāatgriež int vērtība kā "1".
- Tātad assertEquals (1, list.size ()) jāatgriež true.
- Rezultātā testa lieta izturēs .
- Apsveriet metodi m7 (), kā norādīts zemāk:
@Test (taimauts = 10)public void m7 () {System.out.println ("Izmantojot @Test (taimauts), to var izmantot, lai izpildītu taimautu JUnit4 testa gadījumā");}
Kā jau tika apspriests iepriekš, @ test (noildze = 10) anotāciju izmanto, lai izpildītu taimautu testa gadījumā.
- Apsveriet metodi m8 (), kā norādīts zemāk:
@Test (paredzams = NoSuchMethodException.class)public void m8 () {System.out.println ("Izmantojot @Test (paredzams), tā izpildes laikā pārbaudīs, vai nav norādīts izņēmums");}
Kā jau tika apspriests iepriekš, @Test (paredzams) izpildes laikā pārbaudīs noteiktu izņēmumu, tāpēc metode m8 () metīs "Nav šādas metodes izņēmuma". Rezultātā tests tiks izpildīts ar izņēmumu.
Tā kā visi testa gadījumi ir nokārtoti, tas nodrošina veiksmīgu testa izpildi.
Faktiskais rezultāts
Tā kā iepriekš minētajā piemērā ir trīs testa gadījumi, visi testa gadījumi tiks izpildīti pa vienam. Skatīt izvadi zemāk :
Skatiet zemāk esošos drukāšanas paziņojumus, kurus var redzēt konsolē:
Izmantojot @BeforeClass, izpildīts pirms visiem testa gadījumiem
Izmantojot @Before anotācijas, kas izpildītas pirms katra testa gadījuma
Izmantojot @After, izpildīts pēc katra testa gadījuma
Izmantojot @Before anotācijas, kas izpildītas pirms katra testa gadījuma
Izmantojot @Test (taimauts), to var izmantot, lai izpildītu taimautu JUnit4 testa gadījumā
Izmantojot @After, izpildīts pēc katra testa gadījuma
Izmantojot @Before anotācijas, kas izpildītas pirms katra testa gadījuma
Izmantojot @Test (paredzams), tā izpildes laikā pārbaudīs, vai nav norādīts izņēmums
Izmantojot @After, izpildīts pēc katra testa gadījuma
Izmantojot @AfterClass, izpildīts pēc visiem pārbaudes gadījumiem
JUnit Assert klase
Šī klase piedāvā virkni apgalvojumu metožu, kas noder, rakstot testa gadījumu. Ja visi apgalvojumi ir izturēti, testa rezultāti ir veiksmīgi. Ja kāds apgalvojums neizdodas, testa rezultāti neizdodas.
Kā redzējāt iepriekš, zemāk esošajā tabulā ir aprakstītas svarīgas apgalvojuma metodes un apraksts:
S.No. | Metode | Apraksts |
---|---|---|
1. | void assertEquals (paredzams loģiskais skaitlis, faktiskais loģiskais skaitlis) | Tas pārbauda, vai divas vērtības ir vienādas ar vienādu objektu klases metodi |
2. | void assertFalse (Būla nosacījums) | funkcionalitāte ir pārbaudīt, vai nosacījums ir nepatiess. |
3. | void assertNotNull (objekta objekts) | Funkcija "assertNotNull" ir pārbaudīt, vai objekts nav nulle. |
4. | void assertNull (objekta objekts) | Funkcija "assertNull" ir pārbaudīt, vai objekts nav derīgs. |
5. | void assertTrue (Būla nosacījums) | Funkcija "assertTrue" ir pārbaudīt, vai nosacījums ir patiess. |
6. | anulēt neizdoties () | Ja vēlaties mest kādu apgalvojuma kļūdu, jums ir fail (), kas vienmēr rada verdiktu. |
7. | void assertSame ([virknes ziņojums] | Funkcija "assertSame" ir pārbaudīt, vai abi objekti attiecas uz vienu un to pašu objektu. |
8. | void assertNotSame ([virknes ziņojums] | Funkcija "assertNotSame" ir pārbaudīt, vai abi objekti neattiecas uz vienu un to pašu objektu. |
JUnit testa lietu klase
Lai palaistu vairākus testus, TestCase klase ir pieejama org.junit.TestCase paketēs. Anotācija @Test norāda JUnit, ka šo publiskās anulēšanas metodi (šeit ir Test Case), kurai tā ir pievienota, var palaist kā testa gadījumu.
Zemāk esošajā tabulā ir parādītas dažas svarīgas metodes, kas pieejamas org.junit.TestCase klasē:
S.No. | Metode | Apraksts |
---|---|---|
1. | int countTestCases () | Šo metodi izmanto, lai saskaitītu, cik testu gadījumu izpildīja izpildes (TestResult tr) metode. |
2. | TestResult createResult () | Šo metodi izmanto, lai izveidotu TestResult objektu. |
3. | Virkne getName () | Šī metode atgriež virkni, kas nav nekas cits kā TestCase . |
4. | TestResult palaist () | Šo metodi izmanto, lai izpildītu testu, kas atgriež objektu TestResult |
5. | void run (TestResult rezultāts) | Šo metodi izmanto, lai veiktu testu ar objektu TestResult, kas neko neatgriež. |
6. | void setName (virknes nosaukums) | Šo metodi izmanto, lai iestatītu TestCase nosaukumu . |
7. | void setUp () | Šo metodi izmanto resursu asociācijas koda ierakstīšanai. piemēram, izveidojiet datu bāzes savienojumu. |
8. | void tearDown () | Šo metodi izmanto resursu izlaišanas koda ierakstīšanai. piemēram, pēc darījuma operācijas atlaidiet datu bāzes savienojumu. |
JUnit TestResult klase
Veicot testu, tas atgriež rezultātu ( objekta TestResult formā ). Šo TestResult objektu var izmantot, lai analizētu iegūto objektu. Šis testa rezultāts var būt neveiksmīgs vai veiksmīgs. Zemāk esošajā tabulā ir norādītas svarīgas metodes, kas tiek izmantotas org.junit.TestResult klasē:S.No. | Metode | Apraksts |
---|---|---|
1. | void addError (testa tests, izmetams t) | Šo metodi izmanto, ja pārbaudē ir jāpievieno kļūda. |
2. | void addFailure (testa tests, AssertionFailedError t) | Šo metodi izmanto, ja kļūmju sarakstam ir jāpievieno kļūda. |
3. | void endTest (testa tests) | Šo metodi izmanto, lai paziņotu, ka tiek veikts tests (pabeigts) |
4. | int errorCount () | Šo metodi izmanto, lai iegūtu testa izpildes laikā atklāto kļūdu. |
5. | Uzskaites | Šī metode vienkārši atgriež kļūdu kolekciju (šeit uzskaitījums). |
6. | int Failu skaits () | Šo metodi izmanto, lai iegūtu testa izpildes laikā konstatēto kļūdu skaitu. |
7. | void run (TestCase tests) | Šo metodi izmanto, lai izpildītu testa gadījumu. |
8. | int runCount () | Šī metode vienkārši ieskaita izpildīto testu. |
9. | void startTest (testa tests) | Šo metodi izmanto, lai paziņotu par testa sākšanu. |
10. | anulēt pieturu () | Šo metodi izmanto, lai apturētu testu. |
JUnit Test Suite klase
Ja vēlaties veikt vairākus testus noteiktā secībā, to var izdarīt, apvienojot visus testus vienā vietā. Šo vietu sauc par testa komplektiem.
Svarīgas metodes, kas tiek izmantotas org.junit.TestSuite klasē, skatiet zemāk esošajā tabulā :
S.No. | Metode | Apraksts |
---|---|---|
1. | void addTest (testa tests) | Šo metodi izmanto, ja vēlaties komplektam pievienot testu. |
2. | void addTestSuite (klase paplašina TestCase> testClass) | Šo metodi izmanto, ja vēlaties norādīt klasi, vienlaikus pievienojot testu komplektam. |
3. | int countTestCases () | Šo metodi izmanto, ja vēlaties saskaitīt testa gadījumu skaitu. |
4. | Virkne getName () | Šo metodi izmanto, lai iegūtu testa komplekta nosaukumu. |
5. | void run (TestResult rezultāts) | Šo metodi izmanto testa veikšanai un testa rezultātu apkopošanai objektā TestResult . |
6. | void setName (virknes nosaukums) | Šo metodi izmanto, lai iestatītu TestSuite nosaukumu . |
7. | Pārbaudes tests At (int indekss) | Šo metodi izmanto, ja vēlaties atgriezt testu ar norādīto indeksu. |
8. | int testCount () | Šo metodi izmanto, ja vēlaties atgriezt vairākus testus Suite. |
9. | statisks testa brīdinājums (virknes ziņojums) | Šī metode atgriež testu, kas neizdosies, un reģistrēs brīdinājuma ziņojumu. |
Kopsavilkums:
- JUnit nodrošina pārnēsājamu API, kas nodrošina visas svarīgās klases un anotācijas, kas noderīgas, rakstot vienības testu.
- Nodarbības, kas ir ļoti noderīgas, rakstot testa gadījumu
- org.junit.Assert
- org.junit.TestCase
- org.junit.TestResult
- org.junit.TestSuite
- svarīgu un bieži izmantoto anotāciju saraksts
@Pirms
@BeforeClass
@Pēc
@Pēcstundas
@Pārbaude
@ Ignorēt