Decisões
ORG-0015 — Testes de unidade e integração
- Status: aceita
- Data: 2026-10-18
- Decide: três camadas de teste; unidade e integração com as ferramentas da stack, sempre contra dependências reais
Contexto
A linguagem define as ferramentas de teste, mas o que um teste precisa provar é igual em toda stack: as regras, as partes do sistema contra dependências reais e os contratos da plataforma.
Decisão
- Três camadas: unidade (uma regra, sem rede nem container), integração (uma parte real do sistema contra dependências reais, inclusive o teste de rota) e fim a fim (ORG-0016).
- Um comando roda unidade e integração, igual na máquina e na CI.
- Integração contra dependências reais em container: armazenamentos e o Keycloak na mesma
versão do
compose.yamle dotoolbox. Nada de servidor OIDC falso para provar o fio. - Os contratos da plataforma têm teste de integração em toda aplicação: identidade (redireciona
ao Keycloak; 403 explicativo; logout completo), observabilidade (log JSON com
traceId, métricas só na porta interna,/upsem autenticação, coletor fora do ar não derruba requisição) e aviso de ambiente. - Poucos testes com Keycloak real, com espera generosa: o startup dele é limitado por CPU.
- Frameworks, bibliotecas e recortes da suíte ficam numa ADR da stack (a ADR-0003 pré-escrita).
Alternativas consideradas
| Alternativa | Por que não |
|---|---|
| Mocks para banco e identidade | Por que não: provam o mock, não o fio real |
| Ferramentas de teste fixadas pela arquitetura | Por que não: dependem da linguagem |
Consequências
- A suíte de integração precisa de Docker e é mais lenta que a de unidade; os recortes ficam documentados no guia de testes.
Mais
O detalhe está na documentação da arquitetura.