Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:egysegteszteles

< Programozás

Egységtesztelés

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ó:

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