JUnit Testjuhtumid @Before @BeforeClass Annotation
JUnit on kรตige populaarsem รผksus Testimine raamistik sisse Java. See on selgesรตnaliselt soovitatav รksuse testimine. JUnit ei vaja veebirakenduse testimiseks serverit, mis teeb testimise kiireks.
JUnit raamistik vรตimaldab ka kiiresti ja lihtsalt genereerida testjuhtumeid ja testandmeid. The org.Junit pakett koosneb paljudest liidestest ja klassidest JUnit Sellised testid nagu testimine, kinnitamine, pรคrast, enne jne.
Mis on testseade
Enne kui mรตistame, mis on testseade, uurime allolevat koodi
See kood on loodud kahe testjuhtumi tรคitmiseks lihtsas failis.
public class OutputFileTest {
private File output;
output = new File(...);
output.delete();
public void testFile1(){
//Code to verify Test Case 1
}
output.delete();
output = new File(...);
public void testFile2(){
//Code to verify Test Case 2
}
output.delete();
}
Siin on vรคhe probleeme
- Kood ei ole loetav
- Koodi pole lihtne hooldada.
- Kui testkomplekt on keeruline, vรตib kood sisaldada loogilisi probleeme.
Vรตrrelge sama koodi kasutades JUnit
public class OutputFileTest
{
private File output;
@Before public void createOutputFile()
{
output = new File(...);
}
@After public void deleteOutputFile()
{
output.delete();
}
@Test public void testFile1()
{
// code for test case objective
}
@Test public void testFile2()
{
// code for test case objective
}
}
Kood on palju loetavam ja hooldatavam. รlaltoodud koodistruktuur on a Testimisseade.
Testiseade on kontekst, kus a JUnit Testjuhtum jookseb. Tavaliselt hรตlmavad testimisseadmed:
- Objektid vรตi ressursid, mis on saadaval mis tahes testjuhtumi jaoks.
- Vajalikud tegevused, mis muudavad need objektid/ressursid kรคttesaadavaks.
- Need tegevused on
- eraldamine (seade)
- eraldamine (lagunemine).
Seadistamine ja rebimine
- Tavaliselt tuleb enne iga testjuhtumit teha mรตned korduvad รผlesanded. Nรคide: luua andmebaasiรผhendus.
- Samuti vรตib iga testjuhtumi lรตpus esineda korduvaid รผlesandeid. Nรคide: puhastada, kui testi teostamine on lรตppenud.
- JUnit pakub mรคrkusi, mis aitavad seadistamisel ja eemaldamisel. See tagab ressursside vabastamise ja testsรผsteem on jรคrgmiseks katsejuhtumiks valmis.
Need JUnit annotatsioone kรคsitletakse allpool -
Seade
@Enne annotatsioon sisse JUnit kasutatakse meetodil, mis sisaldab Java kood, mida kรคivitada enne iga testjuhtumit. st see tรถรถtab enne iga testi tรคitmist.
Lammutamine (olenemata kohtuotsusest)
@Pรคrast annotatsiooni kasutatakse java koodi sisaldava meetodi puhul, mis kรคivitatakse pรคrast iga testjuhtumit. Need meetodid tรถรถtavad isegi siis, kui testjuhtumis vรตi kinnituse ebaรตnnestumise korral tehakse erandeid.
Mรคrge:
- Lubatud on รผlaltoodud mรคrkuste arv.
- Kรตik meetodid, millele on lisatud mรคrkused @Enne in JUnit kรคivitatakse enne iga testjuhtumit, kuid neid vรตidakse kรคivitada mis tahes jรคrjekorras.
- Meetodid @Before ja @After saate pรคrida superklassist, tรคitmine on jรคrgmine: See on standardne tรคitmisprotsess JUnit.
- Kรคivitage JUnit @Enne meetodeid superklassis
- Kรคivitage selles klassis @Before meetodid
- Kรคivitage selles klassis meetod @Test
- Kรคivitage selles klassis @After meetodid
- Kรคivitage superklassis @After meetodid
Nรคide: klassi loomine failiga testseadmena
public class OutputFileTest
{
private File output;
@Before public void createOutputFile()
{
output = new File(...);
}
@After public void deleteOutputFile()
{
output.delete();
}
@Test public void testFile1()
{
// code for test case objective
}
@Test public void testFile2()
{
// code for test case objective
}
}
รlaltoodud nรคites on tรคitmisahel jรคrgmine:
- createOutputFile()
- testFile1()
- deleteOutputFile()
- createOutputFile()
- testFile2()
- deleteOutputFile()
Eeldus:
testFile1() tรถรถtab enne testFile2() โ mis pole garanteeritud.
รhekordne seadistamine
- Meetodit on vรตimalik kogu testiklassi jaoks kรคivitada ainult รผks kord enne mis tahes testi sooritamist ja enne mis tahes @Enne meetod(id).
- "Ainult kord seadistamine" on kasulik serverite kรคivitamiseks, side avamiseks jne. Iga testi jaoks on ressursside sulgemine ja uuesti avamine aeganรตudev.
- Seda saab teha annotatsiooni abil @BeforeClass in JUnit.
@BeforeClass public static void Method_Name() {
// class setup code here
}
รks kord vaid maha kiskuda
- Sarnaselt รผhekordsele seadistusele on saadaval ka ainult รผhekordne puhastusmeetod. See tรถรถtab pรคrast kรตiki katsejuhtumi meetodeid ja @Pรคrast annotatsioonid on teostatud.
- See on kasulik peatumiseksping serverid, sideรผhenduste sulgemine jne.
- Seda saab teha kasutades @AfterClass mรคrkus
@AfterClass public static void Method_Name()
{
// class cleanup code here
}
JUnit Testsviidid
Kui soovime sooritada mitu testi kindlas jรคrjekorras, saab seda teha, รผhendades kรตik testid รผhte kohta. Seda kohta kutsutakse testkomplektideks. Lisateavet testkomplektide kรคivitamise ja selle kasutamise kohta JUnit selles kรคsitletakse juhendaja.
Junit testijooksja
JUnit pakub tรถรถriista teie testjuhtumite tรคitmiseks.
- JUnittuum klassi kasutatakse nende testide lรคbiviimiseks.
- Meetod nimega runClasses poolt org.junit.runner.JUnittuum, kasutatakse รผhe vรตi mitme testklassi kรคivitamiseks.
- Selle meetodi tagastustรผรผp on Tulemus objekt (org.junit.runner.Result), mida kasutatakse testide kohta teabele juurdepรครคsuks. Selguse huvides vaadake jรคrgmist koodinรคidet.
public class Test {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(CreateAndSetName.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
รlaltoodud koodis tรถรถdeldakse "tulemuse" objekti, et saada meie teostatavate testjuhtumite tรตrkeid ja edukaid tulemusi.
esimene JUnit programm
รiglased teadmised SDLC-st, Java programmeerimisest ja pรตhitรตdedest tarkvara testimine protsess aitab mรตista JUnit programmi.
Mรตistame รผhikutestimist elava nรคite abil. Peame looma testimisklassi, millele on lisatud mรคrkus @Test nagu allpool toodud:
MyFirstClassTest.java
package guru99.JUnit;
import static org.JUnit.Assert.*;
import org.JUnit.Test;
public class MyFirstClassTest {
@Test
public void myFirstMethod(){
String str= "JUnit is working fine";
assertEquals("JUnit is working fine",str);
}
}
TestRunner.java
Meie testmeetodi (รผlal) rakendamiseks peame looma testimisjuhi. Testijuhis peame parameetrina lisama testklassi JUnitCore'i runclasses() meetod . See tagastab testi tulemuse olenevalt sellest, kas test on lรคbitud vรตi ebaรตnnestunud.
Selle kohta lisateabe saamiseks vaadake allolevat koodi:
package guru99.JUnit;
import org.JUnit.runner.JUnitCore;
import org.JUnit.runner.Result;
import org.JUnit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(MyFirstClassTest.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println("Result=="+result.wasSuccessful());
}
}
Vรคljund
Kunagi TestRunner.java tรคidab meie testmeetodid, mille tulemuseks on ebaรตnnestunud vรตi lรคbitud. Allpool leiate vรคljundi selgituse:
- Selles nรคites pรคrast tรคitmist MyFirstClassTest.java , test on lรคbitud ja tulemus on roheline.
- Kui see oleks ebaรตnnestunud, oleks see pidanud tulemust nรคitama punasena ja ebaรตnnestumist saab tรคheldada ebaรตnnestumise korral. trace. Vt allpool JUnit juhend:
kokkuvรตte
- JUnit on raamistik, mis toetab mitmeid annotatsioone testi sisaldava meetodi tuvastamiseks.
- JUnit pakub annotatsiooni nimega @Test, mis รผtleb JUnit et avaliku tรผhisuse meetod, milles seda kasutatakse, saab kรคivitada testjuhtumina.
- Testimisseade on kontekst, kus jookseb testjuhtum
- Mรครคratud jรคrjekorras mitme testi lรคbiviimiseks saab seda teha, รผhendades kรตik testid รผhte kohta. Seda kohta kutsutakse testkomplektideks.
- JUnit pakub tรถรถriista testide lรคbiviimiseks, kus saame kรคitada oma testjuhtumeid, mida nimetatakse Test Runneriks.


