insta: uma biblioteca de teste de snapshot para Rust
Os testes de instantâneos (às vezes também chamados de testes de aprovação) são testes que afirmam valores em relação a um valor de referência (o instantâneo). Isso é semelhante a como assert_eq!
permite comparar um valor com um valor de referência, mas diferentemente de asserções de string simples, os testes de instantâneo permitem testar com valores complexos e vêm com ferramentas abrangentes para revisar as alterações.
Os testes de instantâneo são particularmente úteis se seus valores de referência forem muito grandes ou mudarem com frequência.
#[teste]fn test_hello_world() {insta::assert_debug_snapshot!(vec![1, 2, 3]);}
Curioso? Há um screencast que mostra todo o fluxo de trabalho: assista ao screencast de introdução do Insta. Ou se você não gosta de vídeos, leia a introdução de 5 minutos.
O Insta também oferece suporte a instantâneos embutidos que são armazenados diretamente no arquivo de origem, em vez de arquivos separados. Isso é feito pela ferramenta complementar cargo-insta.
Para visualizar arquivos .snap
, existe uma extensão vscode que pode realçar a sintaxe de arquivos de instantâneo, revisar instantâneos e muito mais. Pode ser instalado a partir do marketplace: veja no marketplace.
Insta usa similar
para todas as suas operações de diferenciação. Você pode usá-lo independentemente do Insta. Você pode usar a caixa similar-asserts
para obter diferenças in-line para o assert_eq!
macro para obter diferenças instantâneas para comparações regulares:
use similar_asserts::assert_eq;fn main() {let reference = vec![1, 2, 3, 4];assert_eq!(reference, (0..4).collect::<Vec<_>>()) ;}
Se você gostar do projeto e achar que ele é útil, você pode se tornar um patrocinador.
Site do projeto
Documentação
Rastreador de problemas
Licença: Apache-2.0