Skip to content
Latchkey

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.

Running fixture-based tests in CI
steps:
  - run: pytest tests/transforms   # uses tests/fixtures/*.csv

Nota 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.

Guias relacionados