Snapshot testing: útil ou armadilha?
Pergunta
O que é um teste de snapshot e quais os riscos de depender muito deles?
Resposta esperada
Um teste de snapshot serializa a saída de algo (uma árvore de componente renderizada, um objeto grande, um HTML) num arquivo na primeira execução, e nas próximas compara a saída atual com o arquivo salvo, falhando se diferir. Útil pra pegar mudanças não intencionais em saídas grandes e pra caracterizar código legado antes de refatorar. Riscos: (1) snapshots grandes que ninguém lê — quando falham, a reação vira 'atualiza tudo' (`-u`) sem revisar, e o teste deixa de proteger; (2) fragilidade — qualquer mudança cosmética legítima quebra e gera ruído; (3) não expressam intenção — o teste não diz o que É importante na saída, só que 'está diferente'. Melhor: snapshots pequenos e focados, revisados de verdade no diff, complementando (não substituindo) asserções explícitas do que importa.
Por que perguntam isso
Pergunta pleno. Sinal bom: o antipadrão do `--update` cego e 'snapshot não expressa intenção'.