Sobes.tech
Junior

Каква е разликата между единичните тестове и интеграционните тестове?

sobes.tech AI

Отговор от AI

Едит тестовете и интеграционните тестове се различават по ниво на обхват и цели:

  • Едит тестове проверяват отделни, изолирани части от кода — обикновено функции или методи. Те не зависят от външни системи (бази данни, мрежи и т.н.) и се изпълняват бързо. Целта е да се уверите, че конкретен модул работи правилно.

  • Интеграционните тестове проверяват взаимодействието на няколко компонента или модула заедно. Те могат да използват реални бази данни, услуги и други външни зависимости. Целта е да се уверите, че компонентите работят правилно заедно.

Пример на 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)
    }
    // Проверка, че потребителят действително е създаден в базата данни
}

По този начин, едит тестовете се фокусират върху логиката, а интеграционните — върху взаимодействието на компонентите.