SnappyTestCase alternatives and similar libraries
Based on the "Other Testing" category.
Alternatively, view SnappyTestCase alternatives based on common mentions on social networks and blogs.
-
Buildasaur
Automatic testing of your Pull Requests on GitHub and BitBucket using Xcode Server. Keep your team productive and safe. Get up and running in minutes. @buildasaur -
NaughtyKeyboard
DISCONTINUED. The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data. This is a keyboard to help you test your app from your iOS device. -
Mockingbird
Simplify software testing, by easily mocking any system using HTTP/HTTPS, allowing a team to test and develop against a service that is not complete or is unstable or just to reproduce planned/edge cases. -
MetovaTestKit
A collection of useful test helpers designed to ease the burden of writing tests for iOS applications. -
XCTestExtensions
XCTestExtensions is a Swift extension that provides convenient assertions for writing Unit Test. -
TestKit
The easiest way to implement full BDD in your Swift iOS projects! Use plain English specs (Gherkin) to drive tests that include both UI automation and interacting with application data & state.
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of SnappyTestCase or a related project?
README
SnappyTestCase
iOS Simulator type agnostic snapshot testing, built on top of the FBSnapshotTestCase.
Why?
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.
Features
- 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
andorientation
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.makeKeyAndVisible()
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'
License
SnappyTestCase
is distributed under the Apache 2.0 license.
Feedback
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.