Repolode
mitsuhiko

mitsuhiko/insta

保存済みのスナップショットと値を比較し、変更をレビューするツールを備えたRust向けスナップショットテストライブラリ。

スター
2,979
フォーク
168
未解決の Issue
78
最終コミット
15 日前

これは何?

instaはRust向けのスナップショットテストライブラリです。スナップショットテストでは、値が保存済みの参照スナップショットと一致することを検証します。assert_eq!と似ていますが、大きな構造体や頻繁に変化する出力など、複雑な値に適しています。スナップショットに変更があるとテストは失敗し、新しい出力を確認して採用できます。

スナップショットは個別の.snapファイル、またはソースファイル内にインラインで保存できます。付属のコマンドラインツールcargo-instaを使って、スナップショットをレビュー・更新できます。VS Code拡張機能では、.snapファイルのシンタックスハイライト、スナップショットのレビュー、定義へのジャンプが利用できます。

instaは差分表示にsimilarクレートを使用し、similar-assertsクレートを使うと通常のassert_eq!による比較でも同じインライン差分を表示できます。

主な機能

  • 01Debugやその他のシリアライズ可能な出力に対するスナップショットアサーション。
  • 02Rustのソースファイル内に直接保存できるインラインスナップショット。
  • 03スナップショットのレビューと更新に使えるコマンドラインツールcargo-insta。
  • 04.snapファイルの表示とレビューに対応したVS Code拡張機能。
  • 05similarライブラリを利用した、比較失敗時のインライン差分表示。

ユースケース

  • 期待値を手作業で書くのが面倒な、複雑な構造体やパーサーの出力をテストする。
  • 時間とともに変化する出力に、意図しない変更がないか検出する。
  • コードレビューのワークフローの一環として、スナップショットの変更を確認する。

クイックスタート

  1. 1

    Cargo.toml に insta crate を dev-dependency として追加する

  2. 2

    値に対して insta::assert_debug_snapshot! を呼び出すテストを書く

  3. 3

    スナップショットを確認するため、付属ツールの cargo-insta をインストールする

収録されている特集

トピック

よくある質問

insta とは?
保存済みのスナップショットと値を比較し、変更をレビューするツールを備えたRust向けスナップショットテストライブラリ。 instaはRust向けのスナップショットテストライブラリです。スナップショットテストでは、値が保存済みの参照スナップショットと一致することを検証します。assert_eq!と似ていますが、大きな構造体や頻繁に変化する出力など、複雑な値に適しています。スナップショットに変更があるとテストは失敗し、新しい出力を確認して採用できます。
insta は無料で使えますか?ライセンスは?
insta は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
insta は今もメンテナンスされていますか?
活発にメンテナンス中。insta の最終コミットは 2026年10月10日 です。
insta は何に使えますか?
期待値を手作業で書くのが面倒な、複雑な構造体やパーサーの出力をテストする。 時間とともに変化する出力に、意図しない変更がないか検出する。 コードレビューのワークフローの一環として、スナップショットの変更を確認する。
insta のインストール方法は?
Cargo.toml に insta crate を dev-dependency として追加する 値に対して insta::assert_debug_snapshot! を呼び出すテストを書く スナップショットを確認するため、付属ツールの cargo-insta をインストールする
insta はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/mitsuhiko/insta

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト