< TestNG

TestNG bevezetés

Szerző: Sallai András

Copyright © 2023, Sallai András

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:

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);