Sobes.tech
Junior

Millist testiraamistikku kasutasite?

sobes.tech AI

Vastus AI-lt

Ma kasutanud erinevaid testiraame sõltuvalt projekti tehnoloogilisest stakist ja testimise spetsiifikast. Kõige sagedamini kasutatavad olid:

  • JUnit / TestNG Java rakenduste testimiseks.
  • Pytest / unittest Python rakenduste testimiseks.
  • NUnit / xUnit .NET rakenduste testimiseks.
  • Mocha / Jest JavaScripti rakenduste testimiseks (eriti frontend).
  • Cypress / Selenium WebDriver UI automatiseerimiseks.
  • Rest-Assured REST API automatiseerimiseks Java-s.
  • Requests + pytest REST API automatiseerimiseks Python-s.

Valik põhineb alati järgmistele teguritele:

  • Rakenduse tehnoloogiline stak.
  • Testkatvuse nõuded (Unit, Integration, End-to-End).
  • Toetus CI/CD süsteemidega integreerimiseks.
  • Raami ajakohasus ja aktiivsus.
  • Meeskonna kogemus.

Projektides, kus oli vaja laiaulatuslikku UI automatiseerimist, kasutasin aktiivselt Selenium WebDriverit erinevates keeltes (Java, Python), samuti Cypressi kiirema ja usaldusväärsema veebirakenduste testimiseks. API testimiseks kasutati sageli spetsialiseeritud raamatukogusid, mis on integreeritud üldiste testiraamidega (näiteks Rest-Assured koos JUnit-iga).

Siin on näide, kuidas kasutada Pytesti lihtsa unit-testi jaoks:

# test_example.py

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

def test_add_positive_numbers():
    # Positiivsete arvude liitmine
    assert add(2, 3) == 5

def test_add_negative_numbers():
    # Negatiivsete arvude liitmine
    assert add(-1, -1) == -2

Ja siin on näide, kuidas kasutada JUnit-i sarnase testi jaoks:

// 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() {
        // Positiivsete arvude liitmine
        assertEquals(5, add(2, 3));
    }

    @Test
    void testAddNegativeNumbers() {
        // Negatiivsete arvude liitmine
        assertEquals(-2, add(-1, -1));
    }
}

Iga raam on oma omadustega ja eelistega ning valik põhineb alati parima lahenduse leidmisel testimise ülesandele.