Sobes.tech
Intern

O que é um teste unitário?

sobes.tech IA

Resposta da IA

O teste unitário é um método de teste de software em que partes mínimas do código (unidades, geralmente funções, métodos ou classes) são isoladas e verificadas para garantir que correspondam ao seu comportamento esperado.

Objetivos dos testes unitários:

  • Verificação de lógica: Verificar a correção de uma seção específica do código isoladamente.
  • Detecção precoce de defeitos: Identificação de erros na fase de desenvolvimento, quando sua correção é mais barata.
  • Facilitação da refatoração: Garantir que alterações no código não quebrem funcionalidades existentes.
  • Documentação: Os testes unitários podem servir como exemplo de uso do código.
  • Melhoria do design do código: Escrever código testável muitas vezes leva a um design mais modular e compreensível.

Características principais dos testes unitários:

  • Automatização: Executados automaticamente por frameworks de testes.
  • Isolamento: Teste de uma unidade, minimizando dependências de sistemas externos (bancos de dados, rede, sistema de arquivos), frequentemente usando mocks ou stubs.
  • Rapidez de execução: Devem ser executados muito rapidamente para serem rodados frequentemente (por exemplo, a cada alteração de código ou antes de um commit).
  • Determinismo: O resultado do teste deve ser o mesmo em cada execução, se o código testado não mudou.

Exemplo em Python usando pytest:

def add(a, b):
    """Soma dois números."""
    return a + b

def test_add_positive_numbers():
    # Verificação de soma de dois números positivos
    assert add(2, 3) == 5

def test_add_negative_numbers():
    # Verificação de soma de dois números negativos
    assert add(-1, -5) == -6

def test_add_zero():
    # Verificação de soma com zero
    assert add(0, 7) == 7