Sobes.tech
Junior

Koji test okvir ste koristili?

sobes.tech АИ

Одговор од АИ

Koristio sam razne testne okvire, u zavisnosti od tehnološkog steka projekta i specifičnosti testiranja. Najčešće korišćeni su:

  • JUnit / TestNG za testiranje Java aplikacija.
  • Pytest / unittest za testiranje Python aplikacija.
  • NUnit / xUnit za testiranje .NET aplikacija.
  • Mocha / Jest za testiranje JavaScript aplikacija (posebno frontenda).
  • Cypress / Selenium WebDriver za UI automatizaciju.
  • Rest-Assured za automatizaciju testiranja REST API-ja u Javi.
  • Requests + pytest za automatizaciju testiranja REST API-ja u Pythonu.

Izbor okvira uvek je zasnivao na faktorima kao što su:

  • Tehnološki stek aplikacije.
  • Zahtevi za pokrivenost testovima (Unit, Integration, End-to-End).
  • Podrška za integraciju sa CI/CD sistemima.
  • Ažurnost i aktivnost zajednice okvira.
  • Iskustvo tima.

U projektima gde je bila potrebna široka automatizacija UI, aktivno sam koristio Selenium WebDriver sa raznim jezicima (Java, Python), kao i Cypress za brže i pouzdanije testiranje web aplikacija. Za API testiranje najčešće su korišćene specijalizovane biblioteke integrisane sa opštim test okvirom (npr. Rest-Assured sa JUnit-om).

Evo primera korišćenja Pytest za jednostavan unit test:

# test_example.py

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

def test_add_positive_numbers():
    # Testiranje sabiranja pozitivnih brojeva
    assert add(2, 3) == 5

def test_add_negative_numbers():
    # Testiranje sabiranja negativnih brojeva
    assert add(-1, -1) == -2

A ovo je primer korišćenja JUnit za sličan 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() {
        // Testiranje sabiranja pozitivnih brojeva
        assertEquals(5, add(2, 3));
    }

    @Test
    void testAddNegativeNumbers() {
        // Testiranje sabiranja negativnih brojeva
        assertEquals(-2, add(-1, -1));
    }
}

Svaki okvir ima svoje specifičnosti i prednosti, a izbor je uvek zasnovan na potrebi da se najbolje reši zadatak testiranja.