Repolode
mitsuhiko

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. 1

    Добавьте crate insta в Cargo.toml в качестве dev-dependency

  2. 2

    Напишите тест, который вызывает insta::assert_debug_snapshot! для значения

  3. 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 обновляется ежедневно.

Похожие проекты

Лёгкий набор утилит для тестирования React DOM: он позволяет находить элементы и взаимодействовать с компонентами так, как это делают пользователи.

19,7 тыс.+1 за неделю1,2 тыс.JavaScriptMITОбновлён 2 месяца назад