oktatas:programozas:egysegteszteles
Tartalomjegyzék
Egységtesztelés
- Szerző: Sallai András
- Copyright © Sallai András, 2021
- Web: https://szit.hu
A tesztelés szintjei
- egységtesztelés
- komponens teszt (vagy modul teszt)
- integrációs teszt
- rendszerteszt
- átvételi teszt
Egységtesztelő rendszerek
- JUnit - Java
- NUnit - C#
- Jest, QUnit, Mocha, Jasmine - JavaScript
- unittest (Python modul) - Python
JUnit teszt
A JUnit egy egységteszt-keretrendszer.
Dokumentáció:
- https://junit.org/junit5/docs/current/api/ (2021; JUnit5)
Annotáció
Az org.junit.jupiter.api.Test annotáció a leggyakrabban használt annotációs osztály.
@Test void testCalcArea() { assertEquals(525, triangle.calcArea(30, 35)); }
- RepeatedTest
- Többször végrehajtandó:
- @RepeatedTest(5)
- DisplayName
- Egyéni név:
- @DisplayName(„Valami a tesztről”)
- Order
- Végrehajtási sorrend megvalósítása
- @Order(2)
- másodiknak
@Test @Order(1) void oneTest() { //teszt } @Test @Order(20) void twoTest() { //teszt }
- Tag
- feliratozás
- @Tag(„lassú”)
- Disable
- teszt tiltása
- @Disabled(„Please fix and enable”)
@Test @Disabled("Please fix and enable") public void checkSomething() { // assertThrows() }
assert
Néhány függvény az org.unit.jupiter.api.Assertions osztályból:
- assertEquals()
- assertNotEquals()
- assertTrue()
- assertFalse()
- assertNull()
- assertNotNull()
- assertSame()
- assertNotSame()
- assertArrayEquals()
- assertInstanceOf() - objektum típusának ellenőrzése
- assertIterableEquals() - iterálható
- assertThrows() - kivétel ellenőrzése
Az AAA minta
Az AAA, a Arrange, Act, Assert szavakból alkotott betűszó.
A Unit tesztek általános felépítésének mintája.
- Arrange: adatok beállítása, előkészítése
- Act: tesztelt metódus hívása
- Assert: Ellenőrzés
Felépítő és lebontó funkciók
- AfterAll
- Minden teszt után végrehajtandó.
- A metódusnak statikusnak kell lennie.
- AfterEach
- A következő tesztek után:
- @Test, @RepeatedTest, @ParameterizedTest, @TestFactory, @TestTemplate
- BeforeAll
- Minden teszt előtt végrehajtandó.
- A metódusnak statikusnak kell lennie.
- BeforeEach
- A következő tesztek előtt:
- @Test, @RepeatedTest, @ParameterizedTest, @TestFactory, @TestTemplate
@BeforeEach void setUp() throws Exception { triangle = new Triangle(); }
Tesztírás
- FirstTests.java
import static org.junit.jupiter.api.Assertions.assertEquals; import lan.zold.Triangle; import org.junit.jupiter.api.Test; class FirstTests { private final Triangle triangle = new Triangle(); @Test void testCalcArea() { assertEquals(2, triangle.calcArea(30, 35)); } }
@Test void checkSomething() { // TODO megvalósítandó fail("not yet implemented"); }
Kivétel ellenőrzése
@Test void testExpectedException() { Assertions.assertThrows(ApplicationException.class, () -> { //teszt }); }
@Test void testExpectedException() { Assertions.assertThrows(NumberFormatException.class, () -> { Integer.parseInt("egy"); }); }
Gyakorlat
- Írjon programot, amely fájlbeolvasó függvényt tesztel.
Forrás
oktatas/programozas/egysegteszteles.txt · Utolsó módosítás: 2021/10/04 12:03 szerkesztette: admin