Repolode
mitsuhiko

mitsuhiko/insta

Biblioteca de testes de snapshot para Rust que compara valores com snapshots de referência armazenados e oferece ferramentas para revisar alterações.

Estrelas
2,979
Forks
168
Issues abertas
78
Último commit
há 15 dias

O que é?

insta é uma biblioteca de testes de snapshot para Rust. Um teste de snapshot verifica se um valor corresponde a uma referência armazenada, de forma semelhante a assert_eq!, mas é mais adequado para valores complexos, como estruturas grandes ou saídas que mudam com frequência. Quando um snapshot muda, o teste falha, e a nova saída pode ser revisada e aceita.

Os snapshots podem ser gravados em arquivos .snap separados ou diretamente no arquivo de origem. A ferramenta de linha de comando cargo-insta, que acompanha a biblioteca, permite revisar e atualizar snapshots. Uma extensão para VS Code oferece realce de sintaxe, revisão de snapshots e navegação para a definição em arquivos .snap.

insta usa o crate similar para gerar diffs, e o crate similar-asserts adiciona a mesma saída de diff inline às comparações comuns com assert_eq!.

Recursos principais

  • 01Asserções de snapshot para saídas Debug e outros formatos serializáveis.
  • 02Snapshots inline armazenados diretamente nos arquivos de origem Rust.
  • 03Ferramenta de linha de comando cargo-insta para revisar e atualizar snapshots.
  • 04Extensão para VS Code para visualizar e revisar arquivos .snap.
  • 05Diffs inline para comparações que falham, usando a biblioteca similar.

Casos de uso

  • Testar structs complexas ou saídas de parsers quando escrever os valores esperados manualmente é trabalhoso.
  • Detectar alterações não intencionais em saídas que evoluem com o tempo.
  • Revisar alterações em snapshots como parte do fluxo de revisão de código.

Início rápido

  1. 1

    Adicione o crate insta como dev-dependency no Cargo.toml

  2. 2

    Escreva um teste que chame insta::assert_debug_snapshot! em um valor

  3. 3

    Instale a ferramenta complementar cargo-insta para revisar os snapshots

Em coleções

Tópicos

Perguntas frequentes

O que é insta?
Biblioteca de testes de snapshot para Rust que compara valores com snapshots de referência armazenados e oferece ferramentas para revisar alterações. insta é uma biblioteca de testes de snapshot para Rust. Um teste de snapshot verifica se um valor corresponde a uma referência armazenada, de forma semelhante a assert_eq!, mas é mais adequado para valores complexos, como estruturas grandes ou saídas que mudam com frequência. Quando um snapshot muda, o teste falha, e a nova saída pode ser revisada e aceita.
insta é gratuito? Qual é a licença?
insta é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
insta ainda é mantido?
Manutenção ativa. O último commit de insta foi em 10 de out. de 2026.
Para que posso usar insta?
Testar structs complexas ou saídas de parsers quando escrever os valores esperados manualmente é trabalhoso. Detectar alterações não intencionais em saídas que evoluem com o tempo. Revisar alterações em snapshots como parte do fluxo de revisão de código.
Como instalar insta?
Adicione o crate insta como dev-dependency no Cargo.toml Escreva um teste que chame insta::assert_debug_snapshot! em um valor Instale a ferramenta complementar cargo-insta para revisar os snapshots
Onde consigo insta?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/mitsuhiko/insta

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados