Vizsgálati program JUnit

JUnit - könyvtári egység tesztelése Java programokat. Alkotó Kent Beck és Erich Gamma, a JUnit családjába tartozik a xUnit keretek különböző programozási nyelvek származó SUnit Kent Beck Smalltalk. JUnit generált ökoszisztéma kiterjesztés - JMock, EasyMock, DbUnit, httpunit stb ...

JUnit - egy Java keretrendszer vizsgálat, vagyis vizsgálata egyes részei a kód, például, módszerek vagy osztályok ... Során szerzett tapasztalatok dolgozik a JUnit, fontos a szoftverfejlesztést vizsgálati fogalmak.

Vizsgálati példa JUnit

Kell használni JUnit

JUnit bármikor gyorsan ellenőrizheti, hogy a kód működik. Ha a program nem elég egyszerű, és tartalmaz egy sor osztályok és metódusok, hosszabb időt vehet igénybe, hogy ellenőrizze azt. Természetesen minél jobb a folyamat automatizálható. Segítségével JUnit lehetővé teszi, hogy ellenőrizze a programkód Jelentős erőfeszítések nélkül, és nem kell sok idő.

Unit tesztek osztályok és függvények a fajta dokumentáció mi várható eredményeként azok végrehajtását. És nem csak a dokumentációban, valamint a dokumentációt, amely automatikusan ellenőrzi kódot betartásának bemutatott funkciókat. Ez kényelmes, és gyakran alakul tesztek mind együtt, és a végrehajtás osztályok. Test Driven Development - egy nagyon népszerű technológia létrehozásához komoly szoftver.

Típusú vizsgálat és JUnit tesztelés helyett besorolás

Szoftver tesztelés lehet osztani két típusa van:

  • fekete doboz tesztelés;
  • fehér-doboz tesztelés.

A vizsgálat során a program, mint egy fekete doboz a belső szerkezete a kérelem nem fogadható el. Csak az számít, hogy a funkcionalitás alkalmazását kell biztosítania. Ha teszteli a programot, mint a fehér doboz figyelembe vesszük a belső szerkezete, azaz a osztályok és módszerek. Ezen túlmenően, a vizsgálati lehet osztani négy szinten:

  • egység tesztek - tesztelheti az egyes szakaszok a kódot;
  • integrációs tesztelés - tesztelés kommunikációs és együttműködési komponenseket;
  • rendszer tesztelése - tesztelés az egész rendszer egészére;
  • vevő teszt - végleges tesztelése a kész rendszer megfelel a követelményeknek.

Unit tesztelés, definíció szerint, a fehér doboz tesztelés.

Használja egység tesztelése két változatban - JUnit 3. és 4. JUnit Tekintsük a két változat, mint a régi projektek is használhatják a harmadik változat, amely támogatja a Java 1.4.

Létrehozásához tesztet kell örökölni TestCase vizsgálati osztály felülírja a felépítése és bontása módszerek, ha szükséges, jól és ami a legfontosabb -, hogy dolgozzon ki a vizsgálati módszerek, amelyek nevét kell kezdődnie „teszt” abbriviatury. Amikor fut a teszt, akkor először hozzon létre egy példányt a vizsgálati osztály (az egyes vizsgálati külön osztályban például az osztály), majd fut beállítási módszert, a tesztelést is, nos, végül futtatja tearDown módszer. Ha bármelyik módszer kivételt dob, akkor a vizsgálat nem sikerült.

Megjegyzés. vizsgálati módszerek legyen public void lehet statikus.

A vizsgálatok a teljesítő néhány kódot és ellenőrzések. Ellenőrzések általában úgy hajtjuk végre Assert osztályú bár néha használja a kulcsszó érvényesíteni.

Példaként tekintsük a segédprogram húrok beleértve vizsgálati módszereket, és egy üres karakterlánc ábrázolása bájtsorozatok egy 16-ed rendű vonalak:

További funkciók, tesztbázist

JUnit 3 van néhány további funkciókat. Például csoportosíthatja teszteket. Ehhez használja a testsuite osztály:

Kipróbálható végrehajtását többször megismételjük. Erre a célra RepeatedTest:

Örökli egy teszt osztályt ExceptionTestCase, akkor ellenőrizze a kódot, hogy kizárja a kiadás:

Ahogy a példák mind nagyon egyszerű, és semmi több - legalábbis a JUnit teszt kód.

A JUnit 4 támogatja az új funkciók a Java 5.0; tesztek is bejelentettek a kommentárokat. Vannak azonban visszafelé kompatibilis a korábbi verziót a keret. Szinte az összes példa a fent tárgyalt fog működni JUnit 4 kivéve RepeatedTest, ami hiányzik az új verzió.

Milyen változások jelentek meg a JUnit 4? Tekintsük ugyanazt a példát, de az új funkciók:

Mi változott a JUnit 4?

  • Egyszerűsítése érdekében a munka lehet örökölt Assert osztályban. bár ez nem feltétlenül szükséges.
  • Abstract @Before jelöl módszerek nevezhető végrehajtása előtt teszteket. Módszereket kell public void. Ott általában helyezni előre a vizsgálat ebben az esetben generációs vizsgálati adatok (setUpToHexStringData módszer).
  • Használhatja kommentár @BeforeClass. amely a módszerek, amelyek az úgynevezett egy példányának létrehozásához a vizsgálati osztály; módszereket kell public static void. Ez az összefoglaló (módszer), akkor van értelme, hogy a tesztelés céljára abban az esetben, ha az osztályban több teszt segítségével különböző előre beállított, vagy ha valamilyen vizsgálatok során ugyanazokat az adatokat, hogy ne időt megteremti azokat az egyes tesztekhez.
  • Abstract @After kifejezés olyan módszerekre vonatkozik, amelyek fogják hívni a vizsgálat után. Módszereket kell public void. Ez az a hely, erőforrás felszabadítás működését a vizsgálat után; a mi esetünkben - tiszta vizsgálati adatok (tearDownToHexStringData módszer).
  • Abstract @AfterClass összefüggésbe jelenti a @BeforeClass. de elvégzi módszerek után az osztály teszt. Mivel ez a helyzet @BeforeClass. módszereket kell public static void.
  • ÖSSZEFOGLALÁS @Test jelöli vizsgálati módszerek. Mint korábban, ezek a módszerek legyen public void. Ez az a hely magad ellenőrizni. Ezen felül, a két paraméter, várhatóan felhasználhatók a kommentárok - állítja a várható kivétel, és ideje - beállítja az időt, ami után a vizsgálat akkor tekinthető nem sikerült.

Példák felhasználási paraméterek jelölései, JUnit teszt:

Figyelmen kívül hagyva a vizsgálat, JUnit figyelmen kívül hagyása

Ha az egyik tesztek bármilyen jó ok a letiltani kívánt, például folyamatosan teszt sikertelen. teszt korrekció lehet késik akár fényes jövő kommentár @Ignore. Ha ezt kommentár egy osztály, az összes vizsgálat ebben az osztályban lesz tiltva.

Tastirovaniya szabályok JUnit szabály

JUnit lehetővé tesz bizonyos fejlesztő szabályok előtt és a vizsgálat után, amely kiterjeszti a funkcionalitást. Például, van egy beépített szabályok a időtúllépés a teszt (Timeout), állítsa be a várt kivétel (ExpectedException), hogy működjön együtt az ideiglenes fájlokat (TemporaryFolder) és mások.

tesztcsonagok, JUnit Suite, SuiteClasses

Lefolytatja a vizsgálatot keresztül lehet beállítani @RunWith kommentárokat. Teszt osztályok, amelyek a vizsgálati módszerek szerint lehet csoportosítani tesztcsonagok (Suite). Például létre két osztály vizsgálati tárgyakat. TestFilter, TestConnect. Ez a két vizsgálat osztályok kombinálhatók egyetlen vizsgálati osztály TestWidgets.java:

Konfigurálása távon alkalmazott vizsgálatok elméleti @SuiteClasses, amely magában foglalja a vizsgálat osztályok.

Absztrakt kategória

Kivonat, JUnit Paraméterezett

Abstract Paraméterezett lehetővé teszi a használatát paraméteres teszteket. Ebből a célból a vizsgálat nyilvánítják osztály statikus módszer, hogy ad egy listát az adatok, amelyek használhatók a konstruktorargumentum.

Parametrizirovanie módszer. Theories.class, adatpontok, DATAPOINT, Theory

Absztrakt elméletek paraméterezett vizsgálati módszer, nem egy kivitelező. Ezek jellegzetessége, hogy @DataPoints és @DataPoint. vizsgálati módszer - segítségével @Theory. Test, amely ezt a funkciót is valahogy így néz ki:

Az, hogy a teszt végrehajtása

Ha azt szeretnénk, hogy végezze el a tesztet egy bizonyos sorrendben, akkor a kommentár @FixMethodOrder (MethodSorters.NAME_ASCENDING) meghatározott JUnit 4.11. Például:

Ha nem, akkor az alábbi két megközelítés.

Kapcsolódó cikkek