Sobes.tech
Junior

Milline on üksustestide ja integratsioonitestide vahe?

sobes.tech AI

Vastus AI-lt

Üksuse- ja integratsioonitestid erinevad katvuse taseme ja eesmärkide poolest:

  • Üksuse testid kontrollivad üksikuid, isoleeritud koodiosi — tavaliselt funktsioone või meetodeid. Nad ei sõltu välissüsteemidest (andmebaasid, võrgud jne) ja töötavad kiiresti. Eesmärk on veenduda, et konkreetne moodul töötab õigesti.

  • Integratsioonitestid kontrollivad mitme komponendi või mooduli koostööd. Nad võivad kasutada reaalseid andmebaase, teenuseid ja teisi väliseid sõltuvusi. Eesmärk on veenduda, et komponendid töötavad koos õigesti.

Näide Go keeles:

// Üksuse funktsiooni test
func TestAdd(t *testing.T) {
    result := Add(2, 3)
    if result != 5 {
        t.Errorf("Oodatud 5, saadud %d", result)
    }
}

// Andmebaasiga integreerimise test
func TestUserCreation(t *testing.T) {
    db := setupTestDB()
    userService := NewUserService(db)
    err := userService.CreateUser("testuser")
    if err != nil {
        t.Fatal(err)
    }
    // Kontrollida, kas kasutaja on tõesti loodud andmebaasis
}

Seega, üksuse testid keskenduvad loogikale, samas kui integratsioonitestid keskenduvad komponentide koostööle.