insta: eine Snapshot-Testbibliothek für Rust
Snapshot-Tests (manchmal auch Genehmigungstests genannt) sind Tests, die Werte anhand eines Referenzwerts (dem Snapshot) bestätigen. Dies ähnelt der assert_eq!
Sie können einen Wert mit einem Referenzwert vergleichen. Im Gegensatz zu einfachen String-Assertions können Sie mit Snapshot-Tests jedoch komplexe Werte testen und verfügen über umfassende Tools zum Überprüfen von Änderungen.
Snapshot-Tests sind besonders nützlich, wenn Ihre Referenzwerte sehr groß sind oder sich häufig ändern.
#[test]fn test_hello_world() {insta::assert_debug_snapshot!(vec![1, 2, 3]);}
Neugierig? Es gibt einen Screencast, der den gesamten Arbeitsablauf zeigt: Sehen Sie sich den Screencast zur Insta-Einführung an. Oder wenn Sie sich nicht für Videos interessieren, lesen Sie die 5-minütige Einführung.
Insta unterstützt auch Inline-Snapshots, die direkt in Ihrer Quelldatei statt in separaten Dateien gespeichert werden. Dies wird durch das begleitende Tool „Cargo-Insta“ erreicht.
Zum Betrachten von .snap
-Dateien gibt es eine vscode-Erweiterung, die Snapshot-Dateien syntaktisch hervorheben, Snapshots überprüfen und mehr kann. Es kann vom Marktplatz aus installiert werden: Auf dem Marktplatz anzeigen.
Insta verwendet similar
für alle seine unterschiedlichen Vorgänge. Sie können es unabhängig von Insta verwenden. Sie können die Kiste similar-asserts
verwenden, um Inline-Diffs für den Standard assert_eq!
Makro, um insta-ähnliche Unterschiede für regelmäßige Vergleiche zu erzielen:
use Similar_asserts::assert_eq;fn main() {let reference = vec![1, 2, 3, 4];assert_eq!(reference, (0..4).collect::<Vec<_>>()) ;}
Wenn Ihnen das Projekt gefällt und Sie es nützlich finden, können Sie Sponsor werden.
Projekt-Website
Dokumentation
Issue-Tracker
Lizenz: Apache-2.0