Jest — фреймворк для тестирования JavaScript со встроенными проверками, моками, snapshot-тестированием и интерактивным watch mode.
mitsuhiko/insta
Библиотека snapshot-тестирования для Rust: сравнивает значения с сохранёнными эталонными снимками и помогает проверять изменения.
- Звёзды
- 2,979
- Форки
- 168
- Открытые issues
- 78
- Последний коммит
- 15 дней назад
Что это?
insta — библиотека snapshot-тестирования для Rust. Такой тест проверяет, совпадает ли значение с сохранённым эталоном, примерно как assert_eq!, но подходит для сложных значений — например, больших структур или часто меняющегося вывода. Если снимок изменился, тест завершается с ошибкой, после чего новый результат можно проверить и принять.
Снимки можно хранить в отдельных файлах .snap или непосредственно в исходном файле. Вспомогательный инструмент командной строки cargo-insta позволяет проверять и обновлять снимки. Расширение для VS Code добавляет подсветку синтаксиса, проверку снимков и переход к определению для файлов .snap.
Для сравнения различий insta использует crate similar, а crate similar-asserts добавляет такое же отображение различий прямо в вывод обычных сравнений assert_eq!.
Ключевые возможности
- 01Проверка снимков для вывода Debug и других сериализуемых данных.
- 02Inline-снимки, хранящиеся прямо в исходных файлах Rust.
- 03Инструмент командной строки cargo-insta для проверки и обновления снимков.
- 04Расширение для VS Code для просмотра и проверки файлов .snap.
- 05Встроенное отображение различий при неудачных сравнениях с помощью библиотеки similar.
Сценарии использования
- Тестирование сложных структур или вывода парсеров, когда вручную задавать ожидаемые значения утомительно.
- Обнаружение непреднамеренных изменений в выводе, который со временем меняется.
- Проверка изменений снимков в рамках ревью кода.
Быстрый старт
- 1
Добавьте crate insta в Cargo.toml в качестве dev-dependency
- 2
Напишите тест, который вызывает insta::assert_debug_snapshot! для значения
- 3
Установите дополнительный инструмент cargo-insta для проверки снапшотов
В подборках
Темы
Частые вопросы
- Что такое insta?
- Библиотека snapshot-тестирования для Rust: сравнивает значения с сохранёнными эталонными снимками и помогает проверять изменения. insta — библиотека snapshot-тестирования для Rust. Такой тест проверяет, совпадает ли значение с сохранённым эталоном, примерно как assert_eq!, но подходит для сложных значений — например, больших структур или часто меняющегося вывода. Если снимок изменился, тест завершается с ошибкой, после чего новый результат можно проверить и принять.
- insta можно использовать бесплатно? Какая у него лицензия?
- insta распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- insta всё ещё поддерживается?
- Активно поддерживается. Последний коммит в insta — 10 окт. 2026 г..
- Для чего можно использовать insta?
- Тестирование сложных структур или вывода парсеров, когда вручную задавать ожидаемые значения утомительно. Обнаружение непреднамеренных изменений в выводе, который со временем меняется. Проверка изменений снимков в рамках ревью кода.
- Как установить insta?
- Добавьте crate insta в Cargo.toml в качестве dev-dependency Напишите тест, который вызывает insta::assert_debug_snapshot! для значения Установите дополнительный инструмент cargo-insta для проверки снапшотов
- Где скачать insta?
- Исходный код и инструкции по установке — на GitHub: https://github.com/mitsuhiko/insta
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Набор инструментов для тестирования Go: assertions, моки и структура suite, совместимая со стандартным запускателем go test.
Фреймворк для модульного тестирования C++ с простыми проверками, макросами в стиле BDD и базовыми микробенчмарками.
AVA — параллельный тестовый раннер для Node.js с лаконичным API, подробным выводом ошибок и изоляцией каждого файла.
PHPUnit — ориентированный на разработчиков фреймворк для модульного тестирования PHP-кода, построенный на архитектуре xUnit.
Лёгкий набор утилит для тестирования React DOM: он позволяет находить элементы и взаимодействовать с компонентами так, как это делают пользователи.