Sobes.tech
Junior

Jaký testovací rámec jste použili?

sobes.tech AI

Odpověď od AI

Použil jsem různé testovací rámce v závislosti na technologickém zásobníku projektu a povaze testů. Nejčastěji používané byly:

  • JUnit / TestNG pro testování Java aplikací.
  • Pytest / unittest pro testování Python aplikací.
  • NUnit / xUnit pro testování .NET aplikací.
  • Mocha / Jest pro testování JavaScriptových aplikací (zejména frontend).
  • Cypress / Selenium WebDriver pro UI automatizaci.
  • Rest-Assured pro automatizaci testů REST API v Java.
  • Requests + pytest pro automatizaci testů REST API v Pythonu.

Výběr rámce byl vždy založen na faktorech, jako jsou:

  • Technologický zásobník aplikace.
  • Požadavky na pokrytí testy (Unit, Integration, End-to-End).
  • Podpora integrace s CI/CD systémy.
  • Aktuálnost a aktivita komunity rámce.
  • Zkušenosti týmu.

V projektech, kde byla potřeba rozsáhlá automatizace UI, jsem aktivně používal Selenium WebDriver s různými jazyky (Java, Python) a také Cypress pro rychlejší a spolehlivější testování webových aplikací. Pro API testování se obvykle používaly specializované knihovny integrované s obecným testovacím rámcem (například Rest-Assured s JUnit).

Zde je příklad použití Pytest pro jednoduchý unit test:

# test_example.py

def add(a, b):
    return a + b

def test_add_positive_numbers():
    # Testování sčítání kladných čísel
    assert add(2, 3) == 5

def test_add_negative_numbers():
    # Testování sčítání záporných čísel
    assert add(-1, -1) == -2

A zde je příklad použití JUnit pro podobný test:

// AdditionTest.java
import static org.junit.jupiter.api.Assertions.assertEquals;

import org.junit.jupiter.api.Test;

public class AdditionTest {

    public int add(int a, int b) {
        return a + b;
    }

    @Test
    void testAddPositiveNumbers() {
        // Testování sčítání kladných čísel
        assertEquals(5, add(2, 3));
    }

    @Test
    void testAddNegativeNumbers() {
        // Testování sčítání záporných čísel
        assertEquals(-2, add(-1, -1));
    }
}

Každý rámec má své vlastnosti a výhody a výběr je vždy motivován potřebou co nejlépe vyřešit testovací úlohu.