JUnit Tesztesetek @BeforeClass Annotation

Tartalomjegyzék:

Anonim

A JUnit a Java legnépszerűbb tesztelő keretrendszere. Kifejezetten ajánlott az egység teszteléséhez. A JUnit nem igényel szervert a webalkalmazások teszteléséhez, ami gyorsabbá teszi a tesztelési folyamatot.

A JUnit keretrendszer lehetővé teszi a tesztesetek és tesztadatok gyors és egyszerű előállítását is. Az org.Junit csomag számos interfészből és osztályból áll a JUnit Testing számára, például Test, Assert, After, Before stb.

Mi az a tesztelvény

Mielőtt megértenénk, mi a tesztkészlet, tanulmányozzuk az alábbi kódot

Ez a kód két teszteset végrehajtására szolgál egy egyszerű fájlon.

public class OutputFileTest {privát File kimenet;output = new File (…);output.delete ();public void testFile1 () {// Kód az 1. teszteset ellenőrzéséhez}output.delete ();output = new File (…);public void testFile2 () {// Kód a 2. teszteset ellenőrzéséhez}output.delete ();}

Néhány kérdés itt

  • A kód nem olvasható
  • A kódot nem könnyű fenntartani.
  • Ha a tesztkészlet összetett, a kód logikai problémákat tartalmazhat.

Hasonlítsa össze ugyanazt a kódot a JUnit használatával

public class OutputFileTest{privát File kimenet;@ Mielőtt nyilvános void createOutputFile (){output = new File (…);}@A nyilvános void után deleteOutputFile (){output.delete ();}@Test public void testFile1 (){// kód a teszteset céljára}@Test public void testFile2 (){// kód a teszteset céljára}}

A kód sokkal olvashatóbb és karbantarthatóbb. A fenti kódszerkezet egy tesztelvény.

A tesztberendezés olyan kontextus, ahol a teszteset fut. A tesztberendezések általában a következőket tartalmazzák:

  • Bármely tesztesethez rendelkezésre álló objektumok vagy erőforrások.
  • Szükséges tevékenységek, amelyek elérhetővé teszik ezeket az objektumokat / erőforrásokat.
  • Ezek a tevékenységek
    1. kiosztás ( beállítás )
    2. kiosztás ( lebontás ).

Beállítás és lebontás

  • Általában néhány ismételt feladatot kell elvégezni minden teszteset előtt. Példa: hozzon létre egy adatbázis-kapcsolatot.
  • Hasonlóképpen, az egyes tesztesetek végén előfordulhat, hogy megismételnek néhány feladatot. Példa: a teszt végrehajtásának befejezése után takarítani.
  • A JUnit olyan kommentárokat kínál, amelyek segítenek a beállításban és a lebontásban. Biztosítja az erőforrások felszabadulását, és a tesztrendszer készen áll a következő tesztesetre.

Ezeket a jegyzeteket az alábbiakban tárgyaljuk

Beállít

A @Before feliratozást Java-kódot tartalmazó metóduson használják, amelyet minden teszteset előtt futtatnak. azaz minden teszt végrehajtása előtt fut.

Teardown (az ítélettől függetlenül)

@A kommentálást a java kódot tartalmazó módszeren használják az egyes tesztesetek után. Ezek a módszerek akkor is működni fognak, ha a tesztesetben vagy az állítás meghibásodása esetén kivételt hoznak.

Jegyzet:

  • A fent felsorolt ​​tetszőleges számú jelölés megengedett.
  • A @Before- val kommentált összes módszer minden teszteset előtt fut, de tetszőleges sorrendben futhat.
  • A @Before és @After metódusokat egy szuper osztályból örökölheti, az Execution a következő: Ez egy standard végrehajtási folyamat a JUnit-ben.
  1. Futtassa a @Before metódusokat a szuperosztályon
  2. Végezze el a @Before metódusokat ebben az osztályban
  3. Végezzen el egy @Test metódust ebben az osztályban
  4. Végezze el a @After metódusokat ebben az osztályban
  5. Végezze el a @After metódusokat a szuperosztályban

Példa: Osztály létrehozása fájlként mint tesztszerelvény

public class OutputFileTest{privát File kimenet;@ Mielőtt nyilvános void createOutputFile (){output = new File (…);}@A nyilvános void után deleteOutputFile (){output.delete ();}@Test public void testFile1 (){// kód a teszteset céljára}@Test public void testFile2 (){// kód a teszteset céljára}}

A fenti példában a végrehajtási lánc a következő lesz:

  1. createOutputFile ()
  2. testFile1 ()
  3. deleteOutputFile ()
  4. createOutputFile ()
  5. testFile2 ()
  6. deleteOutputFile ()

Feltételezés: A testFile1 () a testFile2 () előtt fut, ami nem garantált.

Egyszeri beállítás

  • Csak egy módszer futtatható a teljes tesztosztályon a tesztek végrehajtása előtt, és bármely @Before módszer (ek) előtt.
  • Az "egyszer csak beállítás" hasznos a szerverek indításához, a kommunikáció megnyitásához stb. Időigényes az egyes tesztek erőforrásainak bezárása és újranyitása.
  • Ez a @BeforeClass kommentár segítségével történhet
@BeforeClass public static void Method_Name () {// class setup kód itt}

Egyszer csak lebontani

  • A csak egyszeri beállításhoz hasonlóan elérhető az egyszeri tisztítási módszer is. Az összes teszteset-módszer és a @A kommentárok végrehajtása után fut .
  • Hasznos a szerverek leállításához, a kommunikációs kapcsolatok bezárásához stb.
  • Ez a @AfterClass kommentár segítségével történhet
@AfterClass public static void Method_Name (){// class cleanup kód itt}

JUnit Test Suites

Ha több tesztet akarunk végrehajtani meghatározott sorrendben, akkor úgy tehetjük meg, hogy az összes tesztet egy helyen egyesítjük. Ezt a helyet nevezzük tesztcsomagoknak. A tesztkészletek végrehajtásáról és a JUnit-ben történő használatáról további részleteket ez az oktatóanyag tartalmaz.

Junit Test Runner

A JUnit egy eszközt nyújt a tesztesetek végrehajtásához.

  • A JUnitCore osztályt használják ezeknek a teszteknek a végrehajtására.
  • Az org.junit.runner.JUnitCore által biztosított runClasses nevű módszer egy vagy több tesztosztály futtatására szolgál.
  • A módszer visszatérési típusa az Eredmény objektum ( org.junit.runner.Result ), amely a tesztekkel kapcsolatos információk elérésére szolgál. Az egyértelműség érdekében lásd a következő kódpéldát.
nyilvános osztály teszt {public static void main (String [] érvel) {Eredmény eredménye = JUnitCore.runClasses (CreateAndSetName.class);for (Hiba hiba: result.getFailures ()) {System.out.println (fail.String ());}System.out.println (result.wasSuccessful ());}}

A fenti kódban az "eredmény" objektumot feldolgozzuk, hogy megkapjuk a végrehajtott tesztesetek hibáit és sikeres eredményeit.

Első JUnit program

Az SDLC, a java programozás és a szoftver tesztelési folyamatok alapos ismerete segít megérteni a JUnit programot.

Értsük meg az egység tesztelését élő példával. Létre kell hoznunk egy tesztosztályt egy tesztmódszerrel , amelyet a @Test jelöléssel jelölünk az alábbiak szerint:

MyFirstClassTest.java

csomag guru99.JUnit;statikus org.JUnit.Assert. * importálása;import org.JUnit.Test;nyilvános osztály MyFirstClassTest {@Tesztpublic void myFirstMethod () {String str = "A JUnit jól működik";assertEquals ("A JUnit jól működik", str);}}

TestRunner.java

A fenti vizsgálati módszerünk végrehajtásához létre kell hoznunk egy tesztfutót. A tesztfutóban hozzá kell adnunk a tesztosztályt paraméterként a JUnitCore runclasses () módszerébe. Visszaadja a teszt eredményét, annak alapján, hogy a teszt sikeres volt-e vagy sem.

További részletekért lásd az alábbi kódot:

csomag guru99.JUnit;import org.JUnit.runner.JUnitCore;import org.JUnit.runner.Result;import org.JUnit.runner.notification.Failure;nyilvános osztály TestRunner {public static void main (String [] érvel) {Eredmény eredménye = JUnitCore.runClasses (MyFirstClassTest.class);for (Hiba hiba: result.getFailures ()) {System.out.println (fail.String ());}System.out.println ("Result ==" + result.wasSuccessful ());}}

Kimenet

Miután a TestRunner.java végrehajtotta a tesztelési módszereinket, a kimenetet sikertelennek vagy sikeresnek tekintjük. Az alábbiakban találja a kimenet magyarázatát:

  1. Ebben a példában a MyFirstClassTest.java végrehajtása után a teszt sikeres , és az eredmény zöld színnel jelenik meg.
  2. Ha nem sikerült, akkor meg kellett volna mutatnia az eredményt, mivel a piros és a hiba a hiba nyomában figyelhető meg. Lásd alább JUnit gui:

Összegzés :

  • A JUnit egy keretrendszer, amely számos megjegyzéssel támogatja a tesztet tartalmazó módszer azonosítását.
  • A JUnit egy @Test nevű kommentárral szolgál, amely elmondja a JUnitnek, hogy a public void módszer, amelyben alkalmazzák, tesztesetként futtatható.
  • A tesztberendezés olyan kontextus, ahol egy teszteset fut
  • Több teszt végrehajtása meghatározott sorrendben megtehető úgy, hogy az összes tesztet egy helyen egyesíti. Ezt a helyet nevezzük tesztcsomagoknak.
  • A JUnit egy eszközt biztosít a tesztek végrehajtására, ahol futtathatjuk a Test Runner néven ismert teszteseteinket.