java JUnit
Java JUnit. bevezetés
JUnit - könyvtár szoftver egység tesztelése a Java. JUnit - egyszerű és mégis nagyon hatékony eszköz az írás egység vizsgálatok. A rengeteg vállalat fejlesztése Java nyelven. JUnit használják szakaszában szoftverfejlesztés.
Ebben a cikkben fogjuk vizsgálni a legfrissebb elérhető változat JUnit. nevezetesen 4.1.0. Letöltés JUnit 4.1.0 lehetséges itt.
Annak bizonyítására, a fő jellemzői a JUnit keretrendszer. írni egy kis osztály:
public class pénz
private int értéket;
privát string típusú;
közpénz (int v, t karakterlánc) <
értéke = v;
type = t;
>
közpénzek hozzá (Pénz m) <
visszatér az új pénz (. érték + m getValue () típus.);
>
public int getValue () <
visszatérési értéke;
>
>
Írjunk egy teszt ebbe az osztályba:
importálja statikus org. JUnit. Érvényesíteni. *;
import org.junit.Test;
public class TestMoney
@Test
public void testAdd () <
Pénz m1 = új pénz (12. "USD");
Pénz m2 = új pénz (14. "USD");
A pénz várhatóan = új pénz (26. "USD");
Pénz result = m1. adjunk hozzá (m2);
if (. eredmény. egyenlő (várható))
nem felelt meg ( „Nem egyenlő”);
>
Amit itt látunk?
testAdd () módszer teszteli, mivel ez jelzi annotáció @Test. Ez magyarázat mindig utal vizsgálati módszerek. Minden vizsgálati módszerek szükségszerűen public void. Ez a módszer létrehoz két típusú pénz objektumot. releváns Value12, illetve 14. Ezután a várt objektum létrehozásakor. amely hozzá van rendelve a várható összege az előző két projekt. Pénz negyedik típusú objektum van rendelve a tényleges érték után kapott összeadjuk az első két módszer tárgyakat add (int, string). Ezután, egy, ha összevetjük az elvárt és a tényleges összeg, és ha nem azonos, ha az eljárás nem felelt meg (karakterlánc), hogy tájékoztassa róla. Ha során a készülék teszt sikertelen módszer érhető el. A teljes teszt zsúfolt, és megjeleníti az üzenet nem felel meg.
Mivel a teszt ilyen ellenőrzések Az if lehet elég sokat, hogy ne halmozzuk a kód sokkal kényelmesebb, hogy képviselje a következő módszerrel:
importálja statikus org. JUnit. Érvényesíteni. *;
import org.junit.Test;
public class TestMoney
@Test
public void testAdd () <
Pénz m1 = új pénz (12. "USD");
Pénz m2 = új pénz (14. "USD");
A pénz várhatóan = új pénz (26. "USD");
Pénz result = m1. adjunk hozzá (m2);
assertTrue (várt egyenlő (eredmény).);
>
Ebben az esetben, ha a kifejezés expected.equals (eredmény) true értéket ad vissza. majd a vizsgálaton, mert különben - a vizsgálat tele.
Emellett assertTrueJUnit számos más módon is ellenőrizhető:
importálja statikus org. JUnit. Érvényesíteni. *;
import org.junit.Test;
public class TestMoney
@Test
public void testAdd () <
Pénz m1 = új pénz (12. "USD");
Pénz m2 = új pénz (14. "USD");
A pénz várhatóan = új pénz (26. "USD");
Pénz result = m1. adjunk hozzá (m2);
assertFalse (várt egyenlő (eredmény) ..); // Ha igaz - a vizsgálat tele van
assertEquals (várható, eredmény); // Ha nem egyenlő - a vizsgálat elárasztják
assertNotNull (új pénz (10. "USD")); // Ha null - teszt elárasztják
assertNull (új pénz (10. "USD")); // ha nem null - teszt elárasztják
assertNotSame (várható, eredmény); // Ha a két objektum azonos (nem ugyanaz, mint az egyenlő) - vizsgálati elárasztják
assertSame (várható, eredmény); // Ha a két tárgy nem azonos - a vizsgálat elárasztják
>
lehetővé tegye az első sorban paraméter az alábbiak mindegyikére érvényesíteni-s, amely jelzi, hogy a teszt lesz túlterheltek:
assertEquals ( "Hiba" várható, eredmény.);
Ha az osztály pénz lett volna itt egy ilyen funkció:
közpénzek div (Pénz m) <
visszatér az új pénz (. érték / m getValue () típus.);
>
Ez akkor várható volt, hogy megvizsgáljuk egy kivételt dob, ha szeretnénk megosztani 0. Ezt meg lehet tenni a következő módon:
@Test (expected = Kivétel. Osztály)
public void testDiv () <
Pénz m1 = új pénz (12. "USD");
A pénz m2 = új pénz (0. "USD");
Pénz result = m1. div (m2);
>
Mint látható ez, hoztunk létre egy külön vizsgálati módszer (Tulajdonképpen ez ajánlott mindegyik teszt funkció, hogy hozzon létre egy külön teszt funkció). Amellett, hogy a gyűjtő @Test mi zárójelbe várható = Exception.class. Ez azt jelenti, hogy mi vár a kiadás Kivétel kivétel. és ha ő nem kidobják, mint a viselkedési teszt funkció - hibás (mi határozottan kijelentette, hogy m2 az értékmezőben 0 lesz), majd a teszt elárasztják.
Lehet, hogy észrevette, hogy minden teszt funkció, mi volt az első inicializálása értékének ugyanazon változók. JUnit kínál, hogy ez egy külön inicializálási eljárás elejét kommentár @Before.
@Before
public void setup () <
Pénz m1 = új pénz (12. "USD");
Pénz m2 = új pénz (14. "USD");
>
Ezek a módszerek @Before lehet egy pár, de mindegyiket meg kell public void és végrehajtásra kerül, mielőtt az összes tesztet egymás után. Ha a vizsgálat után azt is meg kell, hogy bizonyos intézkedéseket, ez is történik egy külön funkció megjegyzéssel @After. Emellett vannak olyan jelölések, mint @BeforeClass. @AfterClass - ők fogják hívni előtt és után egy példányt a vizsgálati osztály, illetve, és legyen public static void. Ezen kívül, van még egy nagyon érdekes absztrakt @Test (timeout = 1000). A megadott idő után zárójelben, ha a teszt nem sikerül, akkor azt úgy kell tekinteni zsúfolt. Az idő kijelzése milliszekundum.
Ha bármilyen vizsgálatot bármilyen jó oka letiltani kívánt (pl, a teszt folyamatosan esik, és segít abban, amíg egyszer) akkor zaannotirovat @Ignore:
@Ignore
@Test (timeout = 1000)
public void testAdd () <
// kód
>
Továbbá, ha tesz ezt a jelölést, hogy egy osztály, az összes vizsgálat ebben az osztályban lesz tiltva.
Nos, szinte minden. Nézzük csak futtatni a tesztet hoztunk létre az Eclipse.
Hozzon létre egy Java projekt, és nevezd meg, például JUnitExample. Készítsen egy src pénz osztály mappát, és betette a fő csomag:
public class pénz <
private int értéket;
privát string típusú;
közpénz (int v, t karakterlánc) <
értéke = v;
type = t;
>
közpénzek hozzá (Pénz m) <
visszatér az új pénz (. érték + m getValue () típus.);
>
közpénzek div (Pénz m) <
visszatér az új pénz (. érték / m getValue () típus.);
>
public int getValue () <
visszatérési értéke;
>
>
Jellemzően a tésztát helyezzük egy külön mappába (Folder Sourse - a forrás mappa), majd egy csomagot a neve megegyezik a vizsgálati osztály csomagot. Ehhez kattintson jobb gombbal a projekt nevét, és válassza ki a New-> Source Folder. Adj neki egy nevet, és hozzon létre egy teszt fő csomagot. Jobb klikk a fő csomag, és válassza ki a New-> JUnit Test Case (szükség lehet megtalálni ezt az elemet a másik. De csak azt, hogy legyen). Válasszon egy nevet a zárthelyi (általában a neve kezdődik a teszt szó teszteltük egy osztály neve). Legyen TestMoney. Azt is, hogy egy pipa setUpBeforeClass () módszerek. tearDownAfterClass (). setUp (). tearDown () és az Eclipse maga hoz létre módszerek megjegyzésekkel @AfterClass. @BeforClass. @After. @Before. Ezután egy OK gombot, és írja le a vizsgálati osztály:
importálja statikus org. JUnit. Érvényesíteni. *;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class TestMoney <
Pénz m1;
Pénz m2;
Pénz kell számítani;
Pénz miatt;
@BeforeClass
public static void setUpBeforeClass () dob Kivétel <
>
@AfterClass
public static void tearDownAfterClass () dob Kivétel <
>
@Before
public void setup () dob Kivétel <
m1 = új pénz (12. "USD");
m2 = új pénz (14. "USD");
várhatóan = új pénz (26. "USD");
result = m1. adjunk hozzá (m2);
>
@After
public void tearDown () dob Kivétel <
>
@Test
public void testAdd () <
assertEquals ( "Hiba" várható, eredmény.);
>
>
A kezdéshez meg kell futtatni a programot módban Futtatás -> JUnit teszt. Ezután futtatja le a teszteket. A kapott JUnit fülön látható az eredmény.