insta: библиотека тестирования снимков для Rust
Тесты моментальных снимков (также иногда называемые тестами утверждения) — это тесты, которые проверяют значения по эталонному значению (моментальному снимку). Это похоже на то, как assert_eq!
позволяет сравнивать значение с эталонным значением, но в отличие от простых утверждений строк, тесты моментальных снимков позволяют тестировать сложные значения и оснащены комплексными инструментами для проверки изменений.
Моментальные тесты особенно полезны, если ваши эталонные значения очень велики или часто меняются.
#[test]fn test_hello_world() {insta::assert_debug_snapshot!(vec![1, 2, 3]);}
Любопытный? Есть скринкаст, демонстрирующий весь рабочий процесс: посмотрите вводный скринкаст в Инсте. Или, если вы не любите видео, прочитайте 5-минутное введение.
Insta также поддерживает встроенные снимки, которые хранятся прямо в исходном файле, а не в отдельных файлах. Это достигается с помощью сопутствующего инструмента Cargo-Insta.
Для просмотра файлов .snap
существует расширение vscode, которое может выделять синтаксис файлов снимков, просматривать снимки и многое другое. Его можно установить из маркетплейса: просмотреть на маркетплейсе.
Insta использует similar
для всех своих операций по различению. Вы можете использовать его независимо от инсты. Вы можете использовать крейт similar-asserts
для получения встроенных различий для стандартного assert_eq!
макрос для получения insta-подобных различий для регулярных сравнений:
используйте Like_asserts::assert_eq;fn main() {let reference = vec![1, 2, 3, 4];assert_eq!(reference, (0..4).collect::<Vec<_>>()) ;}
Если вам понравился проект и вы считаете его полезным, вы можете стать его спонсором.
Сайт проекта
Документация
Трекер проблем
Лицензия: Апач-2.0