Mis on JUniti märkused?
JUNITI ANOTATSIOONID on süntaktiliste metaandmete erivorm, mida saab Java lähtekoodile lisada, et kood oleks paremini loetav ja üles ehitatud. Muutujaid, parameetreid, pakette, meetodeid ja klasse saab märkida. Junit4-s võeti kasutusele märkused, mis muudab Java-koodi loetavamaks ja lihtsamaks. See on suur erinevus Junit3 ja Junit4 vahel, et Junit4 põhineb märkustel.
Junit5-s olevate märkuste teadmisega saab hõlpsasti õppida ja rakendada JUniti testi. Allpool on loetelu olulistest ja sageli kasutatavatest märkustest:
S. nr | Annotatsioonid | Kirjeldus |
---|---|---|
1. | @Test | See märkus asendab org.junit.TestCase, mis näitab, et avaliku tühise meetodi, millele see on lisatud, saab käivitada testjuhtumina. |
2. | @Enne | Seda märkust kasutatakse juhul, kui soovite enne iga testijuhtu täita mõne lause, näiteks eeltingimused. |
3. | @BeforeClass | Seda märkust kasutatakse juhul, kui soovite mõne lause käivitada, enne kui kõik testjuhtumid (nt testühendus) tuleb enne kõiki testjuhte täita. |
4. | @Pärast | Seda märkust saab kasutada, kui soovite pärast iga testijuhtu täita mõne lause näiteks muutujate lähtestamiseks, ajutiste failide, muutujate kustutamiseks jne. |
5. | @AfterClass | Seda märkust saab kasutada, kui soovite pärast kõiki testijuhtumeid mõnda lauset käivitada, näiteks ressursside vabastamine pärast kõigi testjuhtumite käivitamist. |
6. | @ Ignoreerib | Seda märkust saab kasutada juhul, kui soovite testi täitmisel eirata mõnda lauset, näiteks mõne testijuhtumi keelamiseks testi täitmise ajal. |
7. | @Test (ajalõpp = 500) | Seda märkust saab kasutada juhul, kui soovite testi käivitamisel määrata mõne ajalõpu, näiteks kui töötate mõne teenusetaseme lepingu alusel ja testid tuleb täita kindlaksmääratud aja jooksul. |
8. | @Test (eeldatav = IllegalArgumentException.class) | Seda märkust saab kasutada, kui soovite katse ajal mõnda erandit käsitleda. Näiteks kui soovite kontrollida, kas konkreetne meetod loob määratud erandi või mitte. |
Selles õpetuses saate teada
- JUniti märkuste näide
- Klass JUnit Assert
- JUniti testjuhtumite klass
- Klass JUnit TestResult
- JUnit Test Suite klass
JUniti märkuste näide
Loome klassi, mis hõlmab lihtsate printimislausetega olulisi JUniti märkmeid ja täidame selle testjooksja klassiga:
Samm 1) Mõelge allpool java klassile, kasutades mitmesuguseid meetodeid, mis on lisatud ülaltoodud märkustele:
JunitAnnotationsExample.java
pakett guru99.junit;import staatiline org.junit.Assert.assertEquals;import staatiline org.junit.Assert.assertFalse;import java.util.ArrayList;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Ignore;import org.junit.Test;avalik klass JunitAnnotationsExample {privaatne ArrayListloend;@BeforeClassavalik staatiline void m1 () {System.out.println ("Kasutades @BeforeClass, täidetud enne kõiki testijuhte");}@Ennepublic void m2 () {list = new ArrayList ();System.out.println ("Kasutades märkusi @Ennen märkusi, täidetakse enne igat testijuhtu");}@AfterClasspublic staatiline void m3 () {System.out.println ("Kasutades rakendust @AfterClass, käivitatakse pärast kõiki testijuhtumeid");}@Pärastpublic void m4 () {nimekiri.selge ();System.out.println ("Kasutades rakendust @After, täidetakse pärast iga testimisjuhtu");}@Testpublic void m5 () {list.add ("test");assertFalse (list.isEmpty ());assertEquals (1, list.size ());}@ Ignoreeripublic void m6 () {System.out.println ("Kasutades @Ignore, seda täitmist ignoreeritakse");}@Test (ajalõpp = 10)public void m7 () {System.out.println ("Kasutades @Test (timeout), saab seda kasutada JUnit4 testjuhtumi ajalõpu sundimiseks");}@Test (eeldatav = NoSuchMethodException.class)public void m8 () {System.out.println ("Kasutades rakendust @Test (eeldatav), kontrollib see selle täitmisel määratud erandit");}}
2. samm) loome ülaltoodud testi täitmiseks testijooksjate klassi:
TestRunner.java
pakett guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;avalik klass TestRunner {public staatiline void main (String [] args) {Tulemus = JUnitCore.runClasses (JunitAnnotationsExample.class);for (rikke tõrge: result.getFailures ()) {System.out.println (rike.String ());}System.out.println ("Result ==" + result.wasSuccessful ());}}
Oodatud Tulemus
- Kõik testjuhud täidetakse ükshaaval ja kogu väljatrükis avaldatud versioon on konsoolil nähtav.
- Nagu on kirjeldatud ülaltoodud tabelis @Before, käivitatakse @BeforeClass [meetod m1 () ja m2 ()] vastavalt enne ja enne kõiki testijuhte.
- Samamoodi käivitatakse @ after, @ afterClass (meetod m3 () ja m4 ()) vastavalt iga testijuhtumi järel. @ignore (meetod m6 ()) käsitletakse testi eiramisena.
Analüüsime üksikasjalikult ülaltoodud Java-klassis kasutatud testjuhtumeid:
- Mõelge meetodile m5 (), nagu allpool esitatud:
@Testpublic void m5 () {list.add ("test");assertFalse (list.isEmpty ());assertEquals (1, list.size ());}
Ülaltoodud meetodis lisate muutujale "loend" stringi nii
- list.isEmpty () tagastab vale.
- assertFalse (list.isEmpty ()) peab tagastama true.
- Selle tulemusel testjuhtum läbib .
Kuna olete loendisse lisanud ainult ühe stringi, on ka suurus üks.
- list.size () peab tagastama int-väärtuse kui "1".
- Seega peab assertEquals (1, list.size ()) tagastama tõene.
- Selle tulemusel testjuhtum läbib .
- Mõelge allpool toodud meetodile m7 ():
@Test (ajalõpp = 10)public void m7 () {System.out.println ("Kasutades @Test (timeout), saab seda kasutada JUnit4 testjuhtumi ajalõpu sundimiseks");}
Nagu ülalpool arutatud, kasutatakse testimenetluse ajalõpu rakendamiseks märkust @Test (timeout = 10) .
- Mõelge allpool toodud meetodile m8 ():
@Test (eeldatav = NoSuchMethodException.class)public void m8 () {System.out.println ("Kasutades rakendust @Test (eeldatav), kontrollib see selle täitmisel määratud erandit");}
Nagu ülalpool arutletud, kontrollib @Test (oodatav) selle täitmise ajal kindlaksmääratud erandit, nii et meetod m8 () viskab "Sellist meetodi erandit pole". Selle tulemusena viiakse test läbi erandiga.
Kuna kõik testijuhud on läbitud, annab see tulemuseks katse eduka täitmise.
Tegelik tulemus
Kuna ülaltoodud näites on kolm testjuhtumit, viiakse kõik testjuhtumid läbi ükshaaval. Vt väljundit allpool :
Vaadake allpool konsoolil näha olevaid väljavõtteid:
Kasutades @BeforeClass, täidetud enne kõiki testijuhte
Kasutades märkusi @Before, mis on täidetud enne iga testimisjuhtu
Kasutades rakendust @After, täidetakse pärast iga testimisjuhtu
Kasutades märkusi @Before, mis on täidetud enne iga testimisjuhtu
Kasutades funktsiooni @Test (timeout), saab seda kasutada JUnit4 testjuhtumi ajalõpu sundimiseks
Kasutades rakendust @After, täidetakse pärast iga testimisjuhtu
Kasutades märkusi @Before, mis on täidetud enne iga testimisjuhtu
Kasutades funktsiooni @Test (eeldatav), kontrollib see selle täitmise ajal määratud erandit
Kasutades rakendust @After, täidetakse pärast iga testimisjuhtu
Kasutades rakendust @AfterClass, täidetakse pärast kõiki testijuhtumeid
Klass JUnit Assert
See klass pakub hulga kinnitusmeetodeid, mis on kasulikud testjuhtumi kirjutamisel. Kui kõik väited on täidetud, on testitulemused edukad. Kui mõni väide ebaõnnestub, on testi tulemused ebaõnnestunud.
Nagu varem nägite, kirjeldab allolev tabel olulisi kinnitusmeetodeid ja kirjeldust:
S. nr | Meetod | Kirjeldus |
---|---|---|
1. | void assertEquals (eeldatav boolean, tegelik loogika) | See kontrollib, kas kaks väärtust on võrdsed objektiklassi meetodiga võrdsed |
2. | void assertFalse (tõeväärtuse tingimus) | funktsionaalsus on kontrollida, kas tingimus on vale. |
3. | void assertNotNull (objekti objekt) | Funktsioon "assertNotNull" on kontrollida, kas objekt pole null. |
4. | void assertNull (objekti objekt) | Funktsioon "assertNull" on kontrollida, kas objekt on null. |
5. | void assertTrue (tõeväärtus) | Funktsioon "assertTrue" on tingimuse tõesuse kontrollimine. |
6. | void fail () | Kui soovite visata väite väites, on teil fail (), mille tulemuseks on alati ebaõnnestunud kohtuotsus. |
7. | void assertSame ([stringisõnum] | Funktsioon "assertSame" on kontrollida, kas kaks objekti viitavad samale objektile. |
8. | void assertNotSame ([stringisõnum] | Funktsioon "assertNotSame" on kontrollida, kas kaks objekti ei viita samale objektile. |
JUniti testjuhtumite klass
Mitme testi käivitamiseks on TestCase klass saadaval pakettides org.junit.TestCase . Annotation @Test ütleb JUnitile, et seda avalikku tühistamismeetodit (siin Test Case), millele see on lisatud, saab käivitada testjuhtumina.
Allolevas tabelis on toodud mõned olulised meetodid, mis on saadaval klassis org.junit.TestCase :
S. nr | Meetod | Kirjeldus |
---|---|---|
1. | int countTestCases () | Seda meetodit kasutatakse, et arvutada, kui palju katsemeetodeid on käivitatud käivitamise (TestResult tr) meetodil. |
2. | TestResult createResult () | Seda meetodit kasutatakse objekti TestResult loomiseks . |
3. | String getName () | See meetod tagastab stringi, mis pole midagi muud kui TestCase . |
4. | TestResult run () | Seda meetodit kasutatakse testi testimiseks, mis tagastab objekti TestResult |
5. | void run (TestResult tulemus) | Seda meetodit kasutatakse testi TestResult objektiga testi tegemiseks, mis ei tagasta midagi. |
6. | void setName (stringi nimi) | Seda meetodit kasutatakse TestCase'i nime määramiseks . |
7. | void setUp () | Seda meetodit kasutatakse ressursside seostamise koodi kirjutamiseks. nt luua andmebaasiühendus. |
8. | void tearDown () | Seda meetodit kasutatakse ressursside vabastamise koodi kirjutamiseks. nt vabastage andmebaasiühendus pärast tehingu toimingu tegemist. |
Klass JUnit TestResult
Testi sooritamisel tagastatakse tulemus ( objekti TestResult kujul ). Seda objekti TestResult saab kasutada tulemuseks oleva objekti analüüsimiseks. See testi tulemus võib olla kas ebaõnnestunud või edukas. Organ.junit.TestResult klassis kasutatud oluliste meetodite kohta leiate allolevast tabelist:S. nr | Meetod | Kirjeldus |
---|---|---|
1. | void addError (testtesti, visatav t) | Seda meetodit kasutatakse juhul, kui peate testile lisama vea. |
2. | void addFailure (testtesti, AssertionFailedError t) | Seda meetodit kasutatakse juhul, kui vajate tõrke lisamiseks tõrgete loendisse. |
3. | void endTest (testtesti) | Seda meetodit kasutatakse testi sooritamise teatamiseks (lõpetatud) |
4. | int errorCount () | Seda meetodit kasutatakse testi käivitamisel tuvastatud vea saamiseks. |
5. | Loenduse | See meetod tagastab lihtsalt vigade kogu (siin loetelu). |
6. | int FailCount () | Seda meetodit kasutatakse testi käivitamisel tuvastatud vigade arvu saamiseks. |
7. | void run (TestCase test) | Seda meetodit kasutatakse testjuhtumi käivitamiseks. |
8. | int runCount () | See meetod loeb lihtsalt täidetud testi. |
9. | void startTest (testtesti) | Seda meetodit kasutatakse testi alustamise teatamiseks. |
10. | tühine peatus () | Seda meetodit kasutatakse peatatava katse jaoks. |
JUnit Test Suite klass
Kui soovite läbi viia mitu testi kindlas järjekorras, saab seda teha, ühendades kõik testid ühes kohas. Seda kohta nimetatakse proovikomplektideks.
Allpool olevast tabelist leiate olulised meetodid, mida kasutatakse klassis org.junit.TestSuite :
S. nr | Meetod | Kirjeldus |
---|---|---|
1. | void addTest (testtesti) | Seda meetodit kasutatakse juhul, kui soovite komplekti testi lisada. |
2. | void addTestSuite (klass laiendab TestCase> testClass) | Seda meetodit kasutatakse juhul, kui soovite klassi määrata, lisades komplektile testi. |
3. | int countTestCases () | Seda meetodit kasutatakse juhul, kui soovite loendada testjuhtumite arvu. |
4. | String getName () | Seda meetodit kasutatakse testipaketi nime saamiseks. |
5. | void run (TestResult tulemus) | Seda meetodit kasutatakse testi sooritamiseks ja testitulemuste kogumiseks objektis TestResult . |
6. | void setName (stringi nimi) | Seda meetodit kasutatakse TestSuite'i nime määramiseks . |
7. | Testi testAt (int indeks) | Seda meetodit kasutatakse juhul, kui soovite tagastada testi antud indeksis. |
8. | int testCount () | Seda meetodit kasutatakse juhul, kui soovite komplektis arvukalt teste tagastada. |
9. | staatiline testihoiatus (stringi teade) | See meetod tagastab testi, mis nurjub ja logib hoiatusteate. |
Kokkuvõte:
- JUnit pakub kaasaskantavat API-d, mis pakub kõiki olulisi klasse ja märkusi, mis on kasulikud ühikutesti kirjutamisel.
- Klassid, mis on testjuhtumi kirjutamisel väga kasulikud
- org.junit.Assert
- org.junit.TestCase
- org.junit.TestResult
- org.junit.TestSuite
- oluliste ja sageli kasutatavate märkuste loend
@Enne
@BeforeClass
@Pärast
@AfterClass
@Test
@ Ignoreeri