Programming language: Swift
License: Apache License 2.0
Tags: Testing     Other Testing    
Latest version: v0.1.0

SnappyTestCase alternatives and similar libraries

Based on the "Other Testing" category.
Alternatively, view SnappyTestCase alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of SnappyTestCase or a related project?

Add another 'Other Testing' Library




iOS Simulator type agnostic snapshot testing, built on top of the FBSnapshotTestCase.


Snapshot testing helps to deliver views that scale correctly with a wide range of screen sizes. When it comes to view controllers, we usually want to ensure they keep visual quality on a various set of existing devices, in each supported orientation. Test suite could be run on numerous variants of iOS Simulators. However, this could be a really time-consuming task, for sure not acceptable during a development process. SnappyTestCase tackles this issue by combining test with a set of device definitions (each one including screen size, scale, and orientation) to validate with, ignoring real device simulator context information.


  • Simulator type insensitive snapshot testing => restart free, quick various device testing
  • Handy definitions of iOS devices to test with - both iPhone and iPad, with chainable filtering API
  • Forcing simulator to adopt scale and orientation according to test device definition
  • Adding device type and orientation to reference file names
  • You can resize one and validate snapshot of another view (for example, you can resize whole window with UITabBarController and validate snapshot of its tab bar only)
  • Optional closure executed just before verifying view

Getting Started

Validating view controller on all existing iPhones, with portrait orientation (default):

func testAllDevices() {
    let window = UIWindow()
    window.rootViewController = ExampleViewController(nibName: nil, bundle: nil)

    verifyViewSnaps(DeviceRack.iPhone.all, view: window)

For more examples of usage check out SnappyDemo project.

Defining device set cheat sheet

Expression Device set description Snapshot count
DeviceRack.iPhone.all.landscape All iPhones, in landscape orientation 4
DeviceRack.iPhone.all.portrait.uniqueWidths Set of iPhones covering all possible screen widths in portrait orientation 3
DeviceRack.iPad.retina.landscape Retina 9.7" / 7.9" iPad, landscape 1

Installation using CocoaPods

Add following line to your test target pods list in Podfile:

pod 'SnappyTestCase'


SnappyTestCase is distributed under the Apache 2.0 license.


We love receiving feedback and we encourage you to contact us and share your thoughts either via e-mail [email protected] or Twitter by mentioning @tooploox.

*Note that all licence references and agreements mentioned in the SnappyTestCase README section above are relevant to that project's source code only.