O Que É uma Data Fixture em Testes? Dados de Teste Conhecidos Explicados
Uma data fixture é uma amostra de dados conhecida e controlada contra a qual um teste roda, para que o teste produza o mesmo resultado repetível todas as vezes.
Testes precisam de entradas previsíveis para dar resultados previsíveis. Uma data fixture fornece isso: uma amostra fixa de dados - linhas, arquivos, registros - preparada especificamente para um teste. Para código de dados e ML, onde o comportamento depende inteiramente dos dados, boas fixtures são a diferença entre testes confiáveis e testes instáveis.
O que é uma data fixture
Uma data fixture é um conjunto preparado de dados de teste com conteúdo conhecido, configurado antes de um teste e disponível para ele. Pode ser um pequeno CSV, uma tabela de banco de dados pré-carregada, um arquivo JSON ou um dataframe em memória. O ponto é que seu conteúdo é fixo e compreendido, de modo que as asserções são estáveis.
Por que fixtures importam para código de dados
Uma transformação ou modelo só se comporta corretamente em relação a dados específicos. Sem uma fixture controlada, um teste pode passar por sorte ou falhar porque os dados de produção mudaram por baixo dele. Fixtures fixam a entrada para que o teste exercite exatamente o caso que afirma exercitar.
Mantendo fixtures realistas mas pequenas
Boas fixtures são pequenas o suficiente para serem rápidas e commitadas ao repositório, e ainda assim representativas de casos extremos reais - nulos, duplicatas, valores de borda. Para dados grandes ou sensíveis, as equipes usam fixtures amostradas ou sintéticas em vez de copiar dados de produção.
Fixtures no CI
O CI roda testes contra fixtures commitadas ou geradas, para que cada pull request valide a lógica de dados contra as mesmas entradas conhecidas.
steps:
- run: pytest tests/transforms # uses tests/fixtures/*.csvNota da Latchkey
Quando as fixtures são maiores ou geradas a partir de uma fonte, o CI precisa buscá-las ou construí-las a cada execução. Na Latchkey, fazer cache dessas fixtures entre execuções mantém os testes rápidos, e o auto-retry cobre uma falha transitória quando uma fixture é puxada de um object storage ou de uma API de origem.
Principais conclusões
- Uma data fixture é um dado de amostra conhecido e controlado que torna um teste repetível.
- Fixtures são essenciais para código de dados e ML, cujo comportamento depende inteiramente dos dados de entrada.
- Boas fixtures são pequenas, representativas de casos extremos, e rodam no CI a cada alteração.