devterview_$ iniciar simulação

Fixtures, factories e o teste que ninguém entende

MédioPlenoQualidade de teste

Pergunta

Por que um monte de fixtures compartilhadas costuma tornar a suíte difícil de manter, e o que ajuda?

Resposta esperada

Fixtures grandes e compartilhadas (um `usuario_padrao` usado por 200 testes) criam acoplamento invisível: mudar a fixture pra um teste novo quebra dezenas de outros; e cada teste depende de campos que você não vê no próprio teste ('por que esse assert espera 3? porque a fixture tem 3 pedidos, lá em outro arquivo'). Ajuda: (1) construir o dado que importa DENTRO do teste, explícito, mostrando só os campos relevantes — o resto vem de um builder/factory com defaults sensatos (`umUsuario().comSaldo(0)`); (2) isolar o estado entre testes (transação com rollback, banco recriado, ou dados com id único por teste); (3) nomear os dados pelo papel no cenário (`usuarioSemPermissao`), não genéricos. O teste deve contar sua própria história: quem lê entende o cenário sem abrir outro arquivo.

Por que perguntam isso

Pergunta pleno. Termos que indicam experiência: 'object mother', 'test data builder', e 'o teste conta sua própria história'.

#fixtures#factories#test-data-builder
publicidade

Relacionadas