Sobes.tech
Junior

¿En qué se diferencian las pruebas unitarias de las pruebas de integración?

sobes.tech AI

Respuesta de la IA

Las pruebas unitarias y las pruebas de integración difieren en el nivel de cobertura y en sus objetivos:

  • Pruebas unitarias verifican partes individuales y aisladas del código, generalmente funciones o métodos. No dependen de sistemas externos (bases de datos, redes, etc.) y se ejecutan rápidamente. El objetivo es asegurarse de que un módulo específico funcione correctamente.

  • Pruebas de integración verifican la interacción de varios componentes o módulos juntos. Pueden usar bases de datos reales, servicios y otras dependencias externas. El objetivo es asegurarse de que los componentes funcionen correctamente en conjunto.

Ejemplo en Go:

// Prueba unitaria de función
func TestAdd(t *testing.T) {
    result := Add(2, 3)
    if result != 5 {
        t.Errorf("Esperado 5, obtenido %d", result)
    }
}

// Prueba de integración con base de datos
func TestUserCreation(t *testing.T) {
    db := setupTestDB()
    userService := NewUserService(db)
    err := userService.CreateUser("testuser")
    if err != nil {
        t.Fatal(err)
    }
    // Verifica que el usuario realmente fue creado en la base de datos
}

De esta forma, las pruebas unitarias se centran en la lógica, mientras que las de integración en la interacción de los componentes.