Hvad er JUnit-kommentarer?
JUNIT ANNOTATIONER er en særlig form for syntaktiske metadata, der kan føjes til Java-kildekoden for bedre kodelæsbarhed og struktur. Variabler, parametre, pakker, metoder og klasser kan kommenteres. Annoteringer blev introduceret i Junit4, hvilket gør Java-koden mere læselig og enkel. Dette er den store forskel mellem Junit3 og Junit4, som Junit4 er baseret på annotering.
Med kendskabet til annoteringer i Junit5 kan man nemt lære og implementere en JUnit-test. Nedenfor er listen over vigtige og ofte anvendte kommentarer:
S. nr. | Kommentarer | Beskrivelse |
---|---|---|
1. | @Prøve | Denne kommentar er en erstatning for org.junit.TestCase, som indikerer, at den offentlige ugyldighedsmetode, som den er knyttet til, kan udføres som en testsag. |
2. | @Før | Denne kommentar bruges, hvis du vil udføre en erklæring, f.eks. Forudsætninger, før hver testsag. |
3. | @BeforeClass | Denne kommentar bruges, hvis du vil udføre nogle udsagn, før alle testsagerne for f.eks. Testforbindelse skal udføres før alle testsagerne. |
4. | @Efter | Denne kommentar kan bruges, hvis du vil udføre nogle udsagn efter hver testcase for f.eks. Nulstilling af variabler, sletning af midlertidige filer, variabler osv. |
5. | @Efter skole | Denne kommentar kan bruges, hvis du vil udføre nogle udsagn efter alle testsager for f.eks. Frigivelse af ressourcer efter udførelse af alle testsager. |
6. | @Ignorerer | Denne kommentar kan bruges, hvis du vil ignorere nogle udsagn under testudførelse for f.eks. At deaktivere nogle testsager under testudførelse. |
7. | @Test (timeout = 500) | Denne kommentar kan bruges, hvis du vil indstille en timeout under testudførelsen, f.eks. Hvis du arbejder under en eller anden SLA (serviceniveauaftale), og testene skal gennemføres inden for en bestemt tidsperiode. |
8. | @Test (forventet = IllegalArgumentException.class) | Denne kommentar kan bruges, hvis du vil håndtere en undtagelse under testudførelsen. For f.eks. Hvis du vil kontrollere, om en bestemt metode kaster en specificeret undtagelse eller ej. |
I denne vejledning lærer du-
- Eksempel på JUnit-kommentarer
- JUnit Assert Class
- JUnit Test Cases Class
- JUnit TestResult klasse
- JUnit Test Suite-klasse
Eksempel på JUnit-kommentarer
Lad os oprette en klasse, der dækker vigtige JUnit-kommentarer med enkle udskriftserklæringer og udføre den med en testløberklasse:
Trin 1) Overvej nedenstående java-klasse med forskellige metoder, der er knyttet til ovennævnte kommentarer:
JunitAnnotationsExample.java
pakke guru99.junit;importer statisk org.junit.Assert.assertEquals;importer statisk org.junit.Assert.assertFalse;importere java.util.ArrayList;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Ignorer;import org.junit.Test;offentlig klasse JunitAnnotationsExample {privat ArrayList-liste;@BeforeClassoffentlig statisk tomrum m1 () {System.out.println ("Brug af @BeforeClass, udført før alle testsager");}@Føroffentligt tomrum m2 () {liste = ny ArrayList ();System.out.println ("Brug af @Before-annoteringer, udført før hver testsag");}@Efter skoleoffentlig statisk tomrum m3 () {System.out.println ("Brug af @AfterClass, udført efter alle testsager");}@Efteroffentlig tomrum m4 () {list.clear ();System.out.println ("Brug af @After, udført efter hver testtilfælde");}@Prøveoffentligt tomrum m5 () {list.add ("test");assertFalse (list.isEmpty ());assertEquals (1, list.size ());}@Ignorereoffentligt tomrum m6 () {System.out.println ("Brug af @Ignore ignoreres denne udførelse");}@Test (timeout = 10)offentligt tomrum m7 () {System.out.println ("Ved hjælp af @Test (timeout) kan den bruges til at håndhæve timeout i JUnit4 test case");}@Test (forventet = NoSuchMethodException.class)offentligt tomrum m8 () {System.out.println ("Brug af @Test (forventet), det vil kontrollere, om der er angivet en undtagelse under udførelsen");}}
Trin 2) lad os oprette en testløberklasse til at udføre ovenstående test:
TestRunner.java
pakke guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;offentlig klasse TestRunner {public static void main (String [] args) {Resultat resultat = JUnitCore.runClasses (JunitAnnotationsExample.class);for (Failure failure: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Resultat ==" + result.wasSuccessful ());}}
forventet resultat
- Alle testsager udføres en efter en, og alle udskriftserklæringer kan ses på en konsol.
- Som diskuteret i ovenstående tabel @Before vil @BeforeClass [metode m1 () og m2 ()] blive udført før henholdsvis hver og før alle testsager.
- På samme måde @ efter udføres @ efterklasse (metode m3 () og m4 ()) efter henholdsvis hver og efter alle testtilfælde. @ignore (metode m6 ()) behandles som ignorering af testen.
Lad os analysere testcases anvendt i ovenstående Java-klasse i detaljer:
- Overvej metode m5 () som angivet nedenfor:
@Prøveoffentligt tomrum m5 () {list.add ("test");assertFalse (list.isEmpty ());assertEquals (1, list.size ());}
I ovenstående metode, da du tilføjer en streng i variablen "liste" så
- list.isEmpty () returnerer falsk.
- assertFalse (list.isEmpty ()) skal returnere true.
- Som et resultat vil testsagen bestå .
Da du kun har tilføjet en streng på listen, er størrelsen en.
- list.size () skal returnere int-værdien som "1".
- Så assertEquals (1, list.size ()) skal returnere true.
- Som et resultat vil testsagen bestå .
- Overvej metode m7 () som angivet nedenfor:
@Test (timeout = 10)offentligt tomrum m7 () {System.out.println ("Ved hjælp af @Test (timeout) kan den bruges til at håndhæve timeout i JUnit4 test case");}
Som diskuteret ovenfor bruges @Test (timeout = 10) annotation til at håndhæve timeout i testsagen .
- Overvej metode m8 () som angivet nedenfor:
@Test (forventet = NoSuchMethodException.class)offentligt tomrum m8 () {System.out.println ("Brug af @Test (forventet), det vil kontrollere, om der er angivet en undtagelse under udførelsen");}
Som diskuteret ovenfor vil @Test (forventet) kontrollere den angivne undtagelse under dens udførelse, så metode m8 () kaster "Ingen sådan metodeundtagelse." Som et resultat udføres testen med en undtagelse.
Da alle testsager er bestået, resulterer dette i en vellykket testudførelse.
Faktisk resultat
Da der er tre testsager i ovenstående eksempel, vil alle testsager blive udført en efter en. Se output nedenfor :
Se nedenstående udskriftserklæringer, som kan ses på konsollen:
Brug @BeforeClass, udført før alle testsager
Brug af @Fore-annoteringer, udført før hver testtilfælde
Brug af @After, udført efter hver testtilfælde
Brug af @Fore-annoteringer, udført før hver testtilfælde
Ved hjælp af @Test (timeout) kan den bruges til at håndhæve timeout i JUnit4 test case
Brug af @After, udført efter hver testtilfælde
Brug af @Fore-annoteringer, udført før hver testtilfælde
Ved hjælp af @Test (forventet) kontrollerer den for specificeret undtagelse under udførelsen
Brug af @After, udført efter hver testtilfælde
Brug af @AfterClass, udført efter alle testsager
JUnit Assert Class
Denne klasse giver en masse påstandsmetoder, der er nyttige til skrivning af en testcase. Hvis alle erklæringer er godkendt, er testresultaterne vellykkede. Hvis en erklæring erklæring mislykkes, mislykkes testresultaterne.
Som du har set tidligere, beskriver nedenstående tabel vigtige påståelsesmetoder og beskrivelse:
S. nr. | Metode | Beskrivelse |
---|---|---|
1. | void assertEquals (forventet boolsk, faktisk boolsk) | Det kontrollerer, om to værdier er lig med lig med metoden for objektklasse |
2. | ugyldigt hævder Falsk (boolsk tilstand) | funktionalitet er at kontrollere, at en betingelse er falsk. |
3. | void assertNotNull (Objektobjekt) | "assertNotNull" funktionalitet er at kontrollere, at et objekt ikke er nul. |
4. | void assertNull (Objektobjekt) | "assertNull" funktionalitet er at kontrollere, at et objekt er nul. |
5. | ugyldigt hævder sandt (boolsk tilstand) | "assertTrue" funktionalitet er at kontrollere, at en betingelse er sand. |
6. | ugyldig fejl () | Hvis du vil kaste en påstandsfejl, har du fail (), der altid resulterer i en fail-dom. |
7. | void assertSame ([String message] | "assertSame" funktionalitet er at kontrollere, at de to objekter henviser til det samme objekt. |
8. | void assertNotSame ([Strengmeddelelse] | "assertNotSame" funktionalitet er at kontrollere, at de to objekter ikke henviser til det samme objekt. |
JUnit Test Cases Class
For at køre flere test er TestCase-klassen tilgængelig i org.junit.TestCase- pakker. Annotation @Test fortæller JUnit, at denne offentlige ugyldighedsmetode (Test Case her), som den er knyttet til, kan køres som en testcase.
Nedenstående tabel viser nogle vigtige metoder, der er tilgængelige i org.junit.TestCase klasse:
S. nr. | Metode | Beskrivelse |
---|---|---|
1. | int countTestCases () | Denne metode bruges til at tælle, hvor mange antal testsager, der udføres efter køre (TestResult tr) -metoden. |
2. | TestResult createResult () | Denne metode bruges til at oprette et TestResult- objekt. |
3. | String getName () | Denne metode returnerer en streng, der kun er en TestCase . |
4. | TestResult-kørsel () | Denne metode bruges til at udføre en test, der returnerer et TestResult- objekt |
5. | ugyldig kørsel (TestResult-resultat) | Denne metode bruges til at udføre en test med et TestResult- objekt, der ikke returnerer noget. |
6. | ugyldigt sætnavn (strengnavn) | Denne metode bruges til at indstille et navn på en TestCase. |
7. | ugyldig setUp () | Denne metode bruges til at skrive ressourcetilknytningskode. f.eks. Opret en databaseforbindelse. |
8. | ugyldig tearDown () | Denne metode bruges til at skrive ressourceudgivelseskode. Frigør f.eks. databaseforbindelse efter transaktionshandling. |
JUnit TestResult klasse
Når du udfører en test, returnerer den et resultat (i form af TestResult- objekt). Dette TestResult-objekt kan bruges til at analysere det resulterende objekt. Dette testresultat kan enten være mislykket eller vellykket. Se nedenstående tabel for vigtige metoder, der anvendes i org.junit.TestResult klasse:S. nr. | Metode | Beskrivelse |
---|---|---|
1. | void addError (Test test, Throwable t) | Denne metode bruges, hvis du har brug for at tilføje en fejl til testen. |
2. | void addFailure (Test test, AssertionFailedError t) | Denne metode bruges, hvis du har brug for at føje en fejl til listen over fejl. |
3. | void endTest (Test test) | Denne metode bruges til at meddele, at en test udføres (afsluttet) |
4. | int errorCount () | Denne metode bruges til at få opdaget fejlen under testudførelse. |
5. | Optælling | Denne metode returnerer simpelthen en samling (Opregning her) af fejl. |
6. | int failureCount () | Denne metode bruges til at få antallet af fejl, der er opdaget under testudførelsen. |
7. | ugyldig kørsel (TestCase test) | Denne metode bruges til at udføre en testsag. |
8. | int runCount () | Denne metode tæller simpelthen den udførte test. |
9. | ugyldig startTest (test test) | Denne metode bruges til at meddele, at en test er startet. |
10. | ugyldigt stop () | Denne metode bruges til at prøvekøre for at blive stoppet. |
JUnit Test Suite-klasse
Hvis du vil udføre flere tests i en bestemt rækkefølge, kan det gøres ved at kombinere alle testene ét sted. Dette sted kaldes som testpakker.
Se nedenstående tabel for vigtige metoder, der anvendes i org.junit.TestSuite klasse:
S. nr. | Metode | Beskrivelse |
---|---|---|
1. | void addTest (Test test) | Denne metode bruges, hvis du vil tilføje en test til pakken. |
2. | ugyldig addTestSuite (klasse udvider TestCase> testClass) | Denne metode bruges, hvis du vil specificere klassen, mens du tilføjer en test til pakken. |
3. | int countTestCases () | Denne metode bruges, hvis du vil tælle antallet af testsager. |
4. | String getName () | Denne metode bruges til at hente navnet på testpakken. |
5. | ugyldig kørsel (TestResult-resultat) | Denne metode bruges til at udføre en test og indsamle testresultater i TestResult- objektet. |
6. | ugyldigt sætnavn (strengnavn) | Denne metode bruges til at indstille navnet på TestSuite . |
7. | Test testAt (int-indeks) | Denne metode bruges, hvis du vil returnere testen ved det givne indeks. |
8. | int testCount () | Denne metode bruges, hvis du vil returnere et antal tests i pakken. |
9. | statisk testadvarsel (strengmeddelelse) | Denne metode returnerer en test, der mislykkes og logger en advarselsmeddelelse. |
Resumé:
- JUnit leverer en bærbar API, der giver alle vigtige klasser og kommentarer, der er nyttige til at skrive en enhedstest.
- Klasser, der er meget nyttige, når du skriver en testcase
- org.junit.Assert
- org.junit.TestCase
- org.junit.TestResult
- org.junit.TestSuite
- liste over vigtige og ofte anvendte kommentarer
@Før
@BeforeClass
@Efter
@Efter skole
@Prøve
@Ignorere