insta : une bibliothèque de tests d'instantanés pour Rust
Les tests d'instantanés (également parfois appelés tests d'approbation) sont des tests qui affirment des valeurs par rapport à une valeur de référence (l'instantané). Ceci est similaire à la façon dont assert_eq!
vous permet de comparer une valeur à une valeur de référence, mais contrairement aux simples assertions de chaîne, les tests instantanés vous permettent de tester des valeurs complexes et sont livrés avec des outils complets pour examiner les modifications.
Les tests instantanés sont particulièrement utiles si vos valeurs de référence sont très grandes ou changent souvent.
#[test]fn test_hello_world() {insta::assert_debug_snapshot!(vec![1, 2, 3]);}
Curieux? Il existe un screencast qui montre l'intégralité du flux de travail : regardez le screencast d'introduction insta. Ou si vous n'aimez pas les vidéos, lisez l'introduction de 5 minutes.
Insta prend également en charge les instantanés en ligne qui sont stockés directement dans votre fichier source au lieu de fichiers séparés. Ceci est accompli par l’outil compagnon cargo-insta.
Pour consulter les fichiers .snap
il existe une extension vscode qui peut mettre en évidence la syntaxe des fichiers d'instantanés, examiner les instantanés et bien plus encore. Il peut être installé depuis la Marketplace : vue sur la Marketplace.
Insta utilise similar
pour toutes ses opérations différentes. Vous pouvez l'utiliser indépendamment d'Insta. Vous pouvez utiliser la caisse similar-asserts
pour obtenir des différences en ligne pour le assert_eq!
macro pour obtenir des différences instantanées pour des comparaisons régulières :
utilisez similar_asserts::assert_eq;fn main() {let reference = vec![1, 2, 3, 4];assert_eq!(reference, (0..4).collect::<Vec<_>>()) ;}
Si le projet vous plaît et le trouvez utile, vous pouvez devenir sponsor.
Site Web du projet
Documentation
Suivi des problèmes
Licence : Apache-2.0