Sobes.tech
Junior

Kuo skiriasi vienetinių testų ir integracinių testų?

sobes.tech AI

Atsakymas iš AI

Vienetiniai ir integraciniai testai skiriasi pagal apimtį ir tikslus:

  • Vienetiniai testai tikrina atskiras, izoliuotas kodo dalis — dažniausiai funkcijas ar metodus. Jie nepriklauso nuo išorinių sistemų (duomenų bazės, tinklai ir kt.) ir vykdomi greitai. Tikslas — įsitikinti, kad konkretus modulis veikia teisingai.

  • Integraciniai testai tikrina kelių komponentų ar modulių sąveiką kartu. Jie gali naudoti realias duomenų bazes, paslaugas ir kitas išorines priklausomybes. Tikslas — įsitikinti, kad komponentai veikia tinkamai kartu.

Pavyzdys Go kalba:

// Vieneto funkcijos testas
func TestAdd(t *testing.T) {
    result := Add(2, 3)
    if result != 5 {
        t.Errorf("Laukiama 5, gauta %d", result)
    }
}

// Duomenų bazės integracijos testas
func TestUserCreation(t *testing.T) {
    db := setupTestDB()
    userService := NewUserService(db)
    err := userService.CreateUser("testuser")
    if err != nil {
        t.Fatal(err)
    }
    // Patikrinimas, ar naudotojas tikrai sukurtas duomenų bazėje
}

Taip, vienetiniai testai sutelkti į logiką, o integraciniai — į komponentų sąveiką.