Sobes.tech
Junior — Middle

Como distinguir os testes modulares dos testes de integração e quais são as suas principais diferenças?

sobes.tech IA

Resposta da IA

Os testes unitários verificam partes individuais e isoladas do código — normalmente métodos ou classes específicas — sem interação com sistemas externos (bancos de dados, rede, etc.). São rápidos, simples e ajudam a garantir que um pedaço específico de lógica funciona corretamente.

Os testes de integração verificam a interação entre vários componentes ou módulos do sistema. Podem usar bancos de dados reais, APIs ou outros serviços para garantir que os componentes funcionam corretamente juntos.

Principais diferenças:

  • Âmbito do teste: unitários — um módulo individual, de integração — vários módulos juntos.
  • Isolamento: unitários — isolados, de integração — não.
  • Velocidade: unitários mais rápidos, de integração mais lentos.
  • Objetivo: unitários — verificar lógica, de integração — verificar interação.

Exemplo em C#:

// Teste unitário
[Test]
public void Add_TwoNumbers_ReturnsSum()
{
    var calculator = new Calculator();
    Assert.AreEqual(5, calculator.Add(2, 3));
}

// Teste de integração
[Test]
public void SaveUser_UserIsSavedInDatabase()
{
    var userService = new UserService(new Database());
    var user = new User { Name = "John" };
    userService.Save(user);
    Assert.IsTrue(userService.Exists(user));
}