Junior
Qual é a diferença entre testes unitários e testes de integração?
sobes.tech IA
Resposta da IA
Os testes unitários e os testes de integração diferem ao nível de cobertura e objetivos:
-
Testes unitários verificam partes isoladas do código — normalmente funções ou métodos. Não dependem de sistemas externos (bases de dados, redes, etc.) e são executados rapidamente. O objetivo é garantir que um módulo específico funcione corretamente.
-
Testes de integração verificam a interação de vários componentes ou módulos juntos. Podem usar bases de dados reais, serviços e outras dependências externas. O objetivo é garantir que os componentes funcionem corretamente em conjunto.
Exemplo em Go:
// Teste unitário de uma função
func TestAdd(t *testing.T) {
result := Add(2, 3)
if result != 5 {
t.Errorf("Esperado 5, obtido %d", result)
}
}
// Teste de integração com base de dados
func TestUserCreation(t *testing.T) {
db := setupTestDB()
userService := NewUserService(db)
err := userService.CreateUser("testuser")
if err != nil {
t.Fatal(err)
}
// Verifica se o usuário foi realmente criado na base de dados
}
Assim, os testes unitários focam na lógica, enquanto os de integração focam na interação dos componentes.