Tartalomjegyzék
TestNG bevezetés
- Szerző: Sallai András
- Copyright © 2023, Sallai András
- Szerkesztve: 2024
- Licenc: 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:
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
Letölthető a következő helyekről:
-
- 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
- TestTriangle.java
import org.testng.Assert; import org.testng.annotations.Test; public class TestTriangle { @Test public void testCalcAreaGoodData1() { Assert.assertTrue(true); } }
Triangle tesztje
- TestTriangle.java
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!"); } }
- TestTriangle.java
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
- test/TestTriangle.java
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
- test/TestTriangle.java
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);