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));
}