Curated list of awesome mobile-friendly snapshot testing resources.
Snapshot testing is a form of software testing which verifies the output of your current application against a reference snapshot taken previously. This allows you to detect changes to your application, some of which may be unintentional. Visual regression testing (VRT) is a form of snapshot testing where the snapshot is an image of your app's interface.
See Awesome Visual Regression Testing for some web-specific resources.
-
iOSSnapshotTestCase (previously FBSnapshotTestCase)
- This repository appears to now be deprecated, but a fork by the original maintainer appears to have been updated recently.
- AccessibilitySnapshot - Adds a custom image strategy representing VoiceOver support.
-
- swift-snapshot-testing-stitch - Adds a custom image strategy which stitches multiple other image strategies into a single snapshot test.
- swift-snapshot-testing-nimble - Adds support for Nimble matchers.
- swift-html - Adds a custom text strategy for HTML documents using a Swift DSL for type-safe, extensible, and transformable HTML documents.
- GRDBSnapshotTesting - Adds a custom text strategy for SQLite database migrations made with GRDB.
- AccessibilitySnapshot - Adds a custom image strategy representing VoiceOver support.
- AccessibilitySnapshotColorBlindness - Adds a custom image strategy for simulating different types of colour blindness.
- ios-accessibility-text-snapshot - Adds a custom text strategy representing VoiceOver support.
-
playbook-ios - A package which encourages developing isolated UI components with automatic snapshot testing.
- accessibility-snapshot-ios - Adds support for VoiceOver testing using AccessibilitySnapshot.
There are very few cloud based snapshot testing tools which natively support iOS and Android applications. All of the options below have a workaround which allows you to upload visual snapshots taken by other tools listed above, and still get the benefits of their platform.
- Snapshot Testing in Swift - Post by Roberto Frontado Explores what snapshot testing is and how to use the SnapshotTesting library in your iOS application.
- Better Android Testing at Airbnb using Screenshot Testing - Explores how Airbnb leveraged Happo and snapshot testing to enhance testing their Android application.
- Accessibility Snapshots - Talk by Tikitu de Jager discussing how snapshot testing can be used to prevent regressions in accessibility support in your iOS application. (Associated GitHub Project)