ページ内ナビ
概要
SnapshotTestingはSwift向けsnapshot testing libraryです。UIView/UIViewControllerの画像だけでなく、recursive description、URLRequest、JSON、plist、dumpなど多様なrepresentationをreferenceとして保存し、後続testで差分を検出できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
assertSnapshotで画像・text・data representationをreferenceと比較する
最初の実行でreference snapshotをdiskへ記録し、以降の実行ではruntime valueと比較します。imageだけでなくrecursiveDescription、raw request、JSON、plist、dumpなど複数strategyを選べます。
出典:[2]
record modeとdevice/trait指定でsnapshot更新とUI条件を制御する
assert単位やscope単位でrecord policyを設定でき、iPhone/iPadのsize classやtrait collectionを指定したsnapshotも生成できます。Swift TestingとXCTestの双方に統合できます。
出典:[2]
向いている用途
UI・API request・serialization結果の意図しない差分をreviewしたい場合に向く
pixel単位のUI regressionだけでなく、URLRequestやEncodable outputなどの構造変化をreference diffとして確認したいiOS test suiteに適します。
出典:[2]
導入前の確認
参考にした公式資料
- [1]pointfreeco/swift-snapshot-testing — GitHub repository(2026-10-06)
- [2]SnapshotTesting 1.19.6 — README(2026-10-06)
- [3]SnapshotTesting 1.19.6 — Package.swift(2026-10-06)
- [4]SnapshotTesting 1.19.6 release(2026-10-06)
- [5]SnapshotTesting MIT license(2026-10-06)
編集部からの補足
UIだけでなくrequestやserialization結果もreference diffとしてreviewしたいiOS test suiteに向きます。image snapshotは同一simulator条件を揃えて運用してください。
3ステップで試す
- 1
SnapshotTesting 1.19.6をtest dependencyへ追加する
SnapshotTesting productはtest targetだけへ追加します。iOS 13以上が必要です。
.package(url: "https://github.com/pointfreeco/swift-snapshot-testing", exact: "1.19.6") - 2
値をdump snapshotとして記録する
最初の実行でreferenceを記録し、再実行で同じrepresentationと比較します。
import SnapshotTesting assertSnapshot(of: ["red", "green", "blue"], as: .dump) - 3
差分がある場合はreferenceを明示的に更新する
意図した変更時だけrecord modeを有効化し、更新されたsnapshotをcode reviewします。
assertSnapshot(of: ["red", "green", "blue"], as: .dump, record: .all)
成長
成長の推移 · 直近30日
4,362 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 2
- Open PR
- 83
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Turbine2,863 Stars
共通タグ 2件 · 共通カテゴリ 2件
kotlinx.coroutines Flowの値・完了・例外を順序どおり待ち受けて検証する
Kotlin - Argos636 Stars
共通タグ 2件 · 共通カテゴリ 2件
画面差分をPull Requestごとに比較し、UI変更をレビューする
TypeScript - The Composable Architecture14,952 Stars
共通タグ 3件 · 共通カテゴリ 2件 · 同じ言語
State・Action・Reducer・Storeを軸にSwiftUI/UIKitのfeatureを合成可能に設計する
Swift - Quick9,825 Stars
共通タグ 3件 · 共通カテゴリ 2件 · 同じ言語
describe・context・itでSwift/Objective-CのtestをBDD形式へ整理する
Swift - Nimble4,836 Stars
共通タグ 3件 · 共通カテゴリ 2件 · 同じ言語
expect・matcher・polling expectationでSwift testの期待値を読みやすく表現する
Swift - Jest45,500 Stars
共通タグ 3件 · 共通カテゴリ 2件
assertion・mock・watch・snapshot・worker isolationを一つのCLIへまとめるJavaScript testing framework
TypeScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。