Junior
Czym różnią się testy jednostkowe od testów integracyjnych?
sobes.tech AI
Odpowiedź od AI
Testy jednostkowe i testy integracyjne różnią się poziomem pokrycia i celami:
-
Testy jednostkowe sprawdzają pojedyncze, izolowane części kodu — zazwyczaj funkcje lub metody. Nie zależą od systemów zewnętrznych (baz danych, sieci itp.) i są wykonywane szybko. Celem jest upewnienie się, że konkretny moduł działa poprawnie.
-
Testy integracyjne sprawdzają współdziałanie kilku komponentów lub modułów razem. Mogą korzystać z rzeczywistych baz danych, usług i innych zależności zewnętrznych. Celem jest upewnienie się, że komponenty poprawnie współpracują.
Przykład w Go:
// Test jednostkowy funkcji
func TestAdd(t *testing.T) {
result := Add(2, 3)
if result != 5 {
t.Errorf("Oczekiwano 5, otrzymano %d", result)
}
}
// Test integracyjny z bazą danych
func TestUserCreation(t *testing.T) {
db := setupTestDB()
userService := NewUserService(db)
err := userService.CreateUser("testuser")
if err != nil {
t.Fatal(err)
}
// Sprawdzamy, czy użytkownik został faktycznie utworzony w bazie
}
W ten sposób testy jednostkowe skupiają się na logice, a integracyjne na współdziałaniu komponentów.