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.