insta: una biblioteca de prueba de instantáneas para Rust
Las pruebas de instantáneas (también llamadas a veces pruebas de aprobación) son pruebas que afirman valores frente a un valor de referencia (la instantánea). Esto es similar a cómo assert_eq!
le permite comparar un valor con un valor de referencia, pero a diferencia de las afirmaciones de cadenas simples, las pruebas instantáneas le permiten realizar pruebas con valores complejos y vienen con herramientas integrales para revisar los cambios.
Las pruebas instantáneas son particularmente útiles si sus valores de referencia son muy grandes o cambian con frecuencia.
#[prueba]fn test_hello_world() {insta::assert_debug_snapshot!(vec![1, 2, 3]);}
¿Curioso? Hay un screencast que muestra todo el flujo de trabajo: mire el screencast de introducción de Insta. O si no te gustan los videos, lee la introducción de 5 minutos.
Insta también admite instantáneas en línea que se almacenan directamente en su archivo fuente en lugar de archivos separados. Esto se logra mediante la herramienta complementaria cargo-insta.
Para ver archivos .snap
, existe una extensión vscode que puede resaltar la sintaxis de archivos de instantáneas, revisar instantáneas y más. Se puede instalar desde Marketplace: ver en Marketplace.
Insta utiliza similar
para todas sus operaciones diferentes. Puedes usarlo independientemente de insta. ¡Puedes usar la caja de similar-asserts
para obtener diferencias en línea para el estándar assert_eq!
macro para lograr diferencias similares a las de insta para comparaciones regulares:
use similar_asserts::assert_eq;fn main() {let reference = vec![1, 2, 3, 4];assert_eq!(reference, (0..4).collect::<Vec<_>>()) ;}
Si te gusta el proyecto y lo encuentras útil puedes convertirte en patrocinador.
Sitio web del proyecto
Documentación
Rastreador de problemas
Licencia: Apache-2.0