Már ismerjük a JUnit tesztelési keretrendszer. Java nyelvi egységtesztek végrehajtására szolgál. A JUnit teszteset az a kódkészlet, amely biztosítja, hogy programkódunk a várt módon működik-e vagy sem.
Ban ben Jáva , kétféle egységteszt lehetséges, a kézi tesztelés és az automatizált tesztelés. A kézi tesztelés a tesztelés egy speciális típusa, amelyben a teszteseteket eszköz használata nélkül hajtják végre. A kézi teszteléssel ellentétben az automatizált tesztelés semmilyen eszköz támogatása nélkül nem lehetséges.
A org.junit csomag több osztályt és csomagot biztosít, ami segít abban, hogy megbizonyosodjunk arról, hogy a kódunk az elvárt kimenetet adja-e vagy sem. Ezek a csomagok és osztályok az Assert, After, Before és Test stb.
A Java kód teszteléséhez az eclipse eszközt fogjuk használni. Először elkészítjük a tesztelni kívánt java kódot, majd ezt követően megírjuk a Java kódunk tesztosztályát vagy tesztesetét.
Vegyünk egy JUnit teszteset példáját, hogy megértsük, hogyan történik a tesztelés valójában a Java-ban.
JunitTestCasePélda.java
package JavaTpoint. JunitExamples; import java.util.ArrayList; import java.util.List; public class JunitTestCaseExample { private List students = new ArrayList(); public void remove(String name) { students.remove(name); } public void add(String name) { students.add(name); } public void removeAll(){ students.clear(); } public int sizeOfStudent() { return students.size(); } }
TestJunitTestCaseExample.java
package JavaTpoint.JunitExamples; import static org.junit.Assert.assertEquals; import org.junit.Test; public class TestJunitTestCaseExample { JunitTestCaseExample obj = new JunitTestCaseExample(); @Test public void testAdd() { obj.add('Emma'); obj.add('Ronan'); obj.add('Antonio'); obj.add('Paul'); assertEquals('Adding 4 student to list', 4, obj.sizeOfStudent()); } @Test public void testSize() { obj.add('Emma'); obj.add('Ronan'); obj.add('Antonio'); assertEquals('Checking size of List', 3, obj.sizeOfStudent()); } @Test public void testRemove() { obj.add('Antonio'); obj.add('Paul'); obj.remove('Paul'); assertEquals('Removing 1 student from list', 1, obj.sizeOfStudent()); } @Test public void removeAll() { obj.removeAll(); } }
TestRunner.java
package JavaTpoint.JunitExamples; import org.junit.runner.Result; import org.junit.runner.JUnitCore; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(TestJunitTestCaseExample.class); for (Failure fail : result.getFailures()) { System.out.println(fail.toString()); } System.out.println(result.wasSuccessful()); } }
Magyarázat
Három java osztályt hoztunk létre, pl. JunitTestCaseExample.java, TestJunitTestCaseExample.java , és TestRunner .Jáva. Ban,-ben JunitTestCasePélda.java osztályban létrehoztuk a kódot, amelyet tesztelni akarunk. Ebben az osztályban névlistát és négy metódust hozunk létre egy elem hozzáadásához, egy elem eltávolításához, a lista méretének megállapításához és az összes elem eltávolításához a listából.
Ban,-ben TestJunitTestCaseExample.java , megírjuk a JunitTestCaseEample.java osztály teszteseteit. Létrehozunk egy objektumot a JunitTestCasePélda.java osztályt, és az objektum használatával teszteljük az összes metódusát. Használjuk a assertEquals() módszerrel ellenőrizheti a tényleges eredményt a várt kimenettel.
A tesztesetek végrehajtásához létrehozzuk a TestRunner.java osztályt. Tartalmazza a main() metódust, amelyben a TestJunitTestCaseExample.java osztályt futtatjuk a JUnitCore runClasses() metódusával. Ezzel a módszerrel a TestJunitTestCaseExample.java osztályfájlját adjuk át. A runClasses() metódus által visszaadott eredmény a Result típusú eredményváltozóban tárolódik.
Most a TestRunner.java osztályt fogjuk futtatni a tesztesetek végrehajtásához. A kimenet igaz, ha a tesztesetek sikeresek, és hamis, ha a tesztesetek nem felelnek meg.
Kimenet