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.