Sobes.tech
Junior

Čime se razlikuju jedinićni testovi od integracionih testova?

sobes.tech АИ

Одговор од АИ

Јединични тестови и тестови интеграције разликују се по нивоу покривености и циљевима:

  • Јединични тестови проверавају појединачне, изоловане делове кода — обично функције или методе. Не зависе од спољашњих система (база података, мреже итд.) и извршавају се брзо. Циљ је да се уверите да одређени модул ради исправно.

  • Тестови интеграције проверавају интеракцију више компоненти или модула заједно. Могу користити реалне базе података, сервисе и друге спољне зависности. Циљ је да се уверите да компоненти исправно сарађују.

Пример у Go:

// Јединични тест функције
func TestAdd(t *testing.T) {
    result := Add(2, 3)
    if result != 5 {
        t.Errorf("Очекује се 5, добијено %d", result)
    }
}

// Интеграциони тест са базом података
func TestUserCreation(t *testing.T) {
    db := setupTestDB()
    userService := NewUserService(db)
    err := userService.CreateUser("testuser")
    if err != nil {
        t.Fatal(err)
    }
    // Проверите да ли је корисник стварно креиран у бази података
}

Овим приступом, јединични тестови се фокусирају на логику, а тестови интеграције на интеракцију компоненти.