Sobes.tech
Junior

Aký testovací rámec ste použili?

sobes.tech AI

Odpoveď od AI

Použil som rôzne testovacie rámce v závislosti od technologického stacku projektu a špecifík testovania. Najčastejšie používané boli:

  • JUnit / TestNG na testovanie Java aplikácií.
  • Pytest / unittest na testovanie Python aplikácií.
  • NUnit / xUnit na testovanie .NET aplikácií.
  • Mocha / Jest na testovanie JavaScript aplikácií (najmä frontendu).
  • Cypress / Selenium WebDriver na UI automatizáciu.
  • Rest-Assured na automatizáciu testovania REST API v Jave.
  • Requests + pytest na automatizáciu testovania REST API v Pythone.

Výber rámca vždy závisel od faktorov ako:

  • Technologický stack aplikácie.
  • Požiadavky na testovacie pokrytie (Unit, Integration, End-to-End).
  • Podpora integrácie s CI/CD systémami.
  • Aktualizovanosť a aktivita komunity rámca.
  • Skúsenosti tímu.

V projektoch, kde bola potrebná široká automatizácia UI, som aktívne používal Selenium WebDriver s rôznymi jazykmi (Java, Python), ako aj Cypress pre rýchlejšie a spoľahlivejšie testovanie webových aplikácií. Na API testovanie sa najčastejšie používali špecializované knižnice integrované s všeobecnými testovacími rámcami (napríklad Rest-Assured s JUnit).

Tu je príklad použitia Pytest pre jednoduchý unit test:

# test_example.py

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

def test_add_positive_numbers():
    # Testovanie sčítania kladných čísel
    assert add(2, 3) == 5

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

A toto je príklad použitia JUnit pre 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() {
        // Testovanie sčítania kladných čísel
        assertEquals(5, add(2, 3));
    }

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

Každý rámec má svoje špecifiká a výhody, a výber je vždy založený na potrebe najlepšieho riešenia úlohy testovania.