Skip to content

Capítulo 18 — Iron Laws e antipadrões

A skill agent-spec-testing-best-practices é a doutrina de testes agnóstica de stack (backend, frontend, mobile). Ela é lida obrigatoriamente pelo Gate 1 (Camada 5) e pelo gerador de casos de teste. Começa por cinco regras que não se negociam.

As Iron Laws (regras invioláveis)

  1. Determinismo — o teste roda igual 100x. Sem Date.now(), Math.random() ou locale sem injeção.
  2. Independência — a ordem de execução não importa. .only ou ordem alternada não muda o resultado.
  3. Foco — 1 teste valida 1 comportamento, não "o módulo inteiro".
  4. Asserção significativaexpect(true).toBe(true), .toBeTruthy(), .toBeDefined() sem valor específico são proibidos.
  5. Mock budget — se um teste mocka todos os colaboradores, deve ter companheiro de integração. Mockar tudo sozinho é teste sobre o mock, não sobre o sistema.

As cinco famílias de antipadrões

FamíliaO que capturaExemplos
BrittlenessTestes que quebram à toaseletor frágil, asserção de mera existência, snapshot-as-test, testar estrutura interna
FlakinessTestes intermitentessleep fixo, dependência de ordem, input não-determinístico, retry-as-fix
Mock misuseMocks que mentemmock-driven confidence, over-mock, mock incompleto, mock no nível errado
ProcessPadrões organizacionais ruinssó happy path, cobertura como vaidade, quarentena-cemitério, magic strings, enfraquecer teste para passar
AI-specificPadrões introduzidos por IAzero edge cases, teste semanticamente duplicado, fail-fast intestável

⚠️ Armadilha comum

Os antipadrões AI-specific são os mais traiçoeiros: uma IA gera 6 asserções positivas e zero negativa, ou dois testes que validam o mesmo cenário com nomes diferentes. Tudo verde, tudo inútil. É por isso que a doutrina é lida tanto na geração quanto na validação dos testes.

A lista canônica completa (com cada antipadrão nomeado em snake_case e severidade pré-mapeada) vive na Referência — esta tabela é um mapa das famílias, não o catálogo exaustivo.

📚 Aprofundamento na Referência

AgentSpec Framework · Spec-driven com IA sobre Claude Code