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.




Kapcsolódó cikkek