🏁 Convenções na Escrita de Testes

Na engenharia de software moderna, a consistência é tão importante quanto a funcionalidade. Seguir convenções universais reduz a carga cognitiva da equipe e facilita a manutenção do ciclo de vida da aplicação.

🏗️ Padrão de Nomenclatura e Estrutura

A convenção global dita que classes de teste devem utilizar o sufixo Test (ex: GeradorDePrecosTest). No JUnit 5, os métodos de teste não precisam mais ser public, aumentando o encapsulamento.

📊 Fluxo de Build de Alta Fidelidade

flowchart LR
    A[🏁 Código Fonte] --> B[🏗️ Compilação]
    B --> C{🧪 Suite de Testes}
    C -- Falha --> D[❌ Abortar Build]
    C -- Sucesso --> E[🏁 Empacotamento / Deploy]
    style D fill:#fdf2f2,stroke:#c0392b
    style E fill:#f1f8e9,stroke:#558b2f

🏗️ Separação de Responsabilidades (Source Folders)

É um Anti-padrão misturar código de produção com código de teste. Operamos com o padrão Maven:

  • Produção: src/main/java/ (Regras de Negócio).
  • Testes: src/test/java/ (Validação).

🧪 Anatomia do Assert (AssertJ Model)

Embora o JUnit forneça o Assertions.assertEquals(expected, actual), o padrão de Elite utiliza o AssertJ pela sua fluidez semântica:

// SINTAXE DE ELITE (AssertJ)
assertThat(valorCalculado).isEqualTo(valorEsperado);

🧠 Por que a fluidez importa?

Ao contrário do assertEquals, onde é fácil inverter expected e actual, a sintaxe do AssertJ segue a linguagem natural: “Certifique-se que (assertThat) o valor calculado seja igual a (isEqualTo) o esperado”.

Clean Test Code ⚡

Trate seu código de teste com o mesmo rigor do código de produção. Testes limpos e bem organizados são a melhor documentação técnica que seu projeto pode ter. 🚀


⬅️ Capítulo Anterior | Próximo Capítulo ➡️