[[oktatas:programozás:java:java_teszteles:testng|< TestNG]] ====== TestNG bevezetés ====== * **Szerző:** Sallai András * Copyright (c) 2023, Sallai András * Szerkesztve: 2024 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== A TestNG ===== A TestNG egy tesztelő keretrendszer a JUnit-hoz hasonlóan, azonban bevezet néhány új funkciót, ami hatékonyabbá teszi. A TestNG-t úgy tervezték, hogy lefedjen minden tesztkategóriát: egység, funkció, végponttól-végpontig, integrációs, stb. Weblap: * https://testng.org/ Szükséges legalább Java 11. ===== Szükséges ===== A következő programozói könyvtárakra van szükség: * jcommander-x.y.jar * slf4j-api-x.y.z.jar * testng-x.y.z.jar A 7.8.0-ás testng számára, 1.7.36-os slf4j-api szükséges. Letölthető a következő helyekről: * https://central.sonatype.com/ (2023) * keresőbe: testng * testng > Versin > Browse > testng-7.8.0.jar * https://mvnrepository.com/ (2023, Maven, Gradle buildekhez) ===== VSCode ===== Bővítmény: * Test Runner for Java (minimum Java 11) ==== Tesztkönyvtár ==== Tesztkönyvtárnak vegyünk fel a projekt gyökérkönyvtárában egy test nevű könyvtárat, benne tetszőleges néven egy .java kiterjesztésű fájlt. * test/TestPelda.java app01/ |-src/ | `-App.java `-test/ `-TestPelda.java ==== Class path beállítások ==== Ha már létrehoztuk a test könyvtárat és benne egy .java kiterjesztésű fájlt, például: * test/TestPelda.java A projekt osztályútvonalaihoz a test könyvtár felvétele: * Nyissunk meg egy .java kiterjesztésű fájlt. * F1 * Java: Configure Classpath * Sources * Add * test Amiket beállíthatunk: * projekt könyvtár * forrás könyvtárak (src, test) * kimenet célkönyvtár (bin) * JDK Runtime * Hivatkozott könyvtárak ==== Beállítás másként ==== Ha már létrehoztuk a test könyvtárat és benne egy .java kiterjesztésű fájlt, például: * test/TestPelda.java Az EXPLORER-ben a test könyvtáron jobb egér gomb, majd: * Add Folder to Java Source Path Ellenőrzésként az oldalsávon a **JAVA PROJECTS** nézetben keressük meg a **test** könyvtárat. ==== Hivatkozás programozói könyvtárakra ==== Az oldalsávon a **JAVA PROJECTS** nézetben keressük meg a következőt: * Referenced Libraries * Vigyük az egeret a sor felé. * Ha megjelenik egy + felirat, kattintsunk. * Tallózzuk ki a fenti .jar fálokat. Alternatív megoldás, ha projekt lib könyvtárába másoljuk a .jar fájlokat. ===== True példa ===== import org.testng.Assert; import org.testng.annotations.Test; public class TestTriangle { @Test public void testCalcAreaGoodData1() { Assert.assertTrue(true); } } ===== Triangle tesztje ===== import org.testng.Assert; import org.testng.annotations.Test; public class TestTriangle { @Test public void testCalcAreaGoodData1() { Triangle tri = new Triangle(); double actual = tri.calcArea(30, 35); double expected = 525; Assert.assertEquals(actual, expected, 0.9, "Hiba!"); } } import org.testng.Assert; import org.testng.annotations.Test; public class TestTriangle { @Test public void testCalcAreaGoodData1() { Triangle tri = new Triangle(); double actual = tri.calcArea(30, 35); double expected = 525; Assert.assertEquals(actual, expected, 0.9, "Hiba!"); } @Test public void testCalcAreaGoodData2() { Triangle tri = new Triangle(); double actual = tri.calcArea(100, 130); double expected = 6500; Assert.assertEquals(actual, expected, 0.9, "Hiba!"); } } ===== A példányosítás kiemelése ===== import org.testng.Assert; import org.testng.annotations.Test; public class TestTriangle { Triangle tri = new Triangle(); @Test public void testCalcAreaGoodData1() { double actual = tri.calcArea(30, 35); double expected = 525; Assert.assertEquals(actual, expected, 0.9, "Hiba!"); } @Test public void testCalcAreaGoodData2() { double actual = tri.calcArea(100, 130); double expected = 6500; Assert.assertEquals(actual, expected, 0.9, "Hiba!"); } } ===== Minden teszt előtt ===== import org.testng.Assert; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; public class TestTriangle { Triangle tri; @BeforeTest public void initTriangle() { tri = new Triangle(); } @Test public void testCalcAreaGoodData1() { double actual = tri.calcArea(30, 35); double expected = 525; Assert.assertEquals(actual, expected, 0.9, "Hiba!"); } @Test public void testCalcAreaGoodData2() { double actual = tri.calcArea(100, 130); double expected = 6500; Assert.assertEquals(actual, expected, 0.9, "Hiba!"); } } ===== Az assertEquals ===== @Test public void testCalcRadius_30_35() { double actual = this.tombsug.calcRadius(30, 35); double expected = 8.6; double delta = 0.1; String msg = "Hiba! A bemenő paraméter hibás!"; Assert.assertEquals(actual, expected, delta, msg); } Használható csak az aktuális, és az elvárt érték megadásával. Assert.assertEquals(actual, expected); Delta érték hozzáadása: Assert.assertEquals(actual, expected, delta); Üzenet hozzáadása: Assert.assertEquals(actual, expected, msg);