A Swift Playgrounds unit testing library for Mac and iOS with Nimble-compatible API.
Spry is a unit testing library for Swift Playgrounds on Mac and iOS, based on the Nimble testing framework. It allows developers to write and run tests directly within Playgrounds, enabling rapid prototyping and experimentation with Swift code. The library provides a subset of Nimble's matchers and a compatible API, making it easy to transfer tests to Xcode projects later.
Swift developers who use Playgrounds for prototyping, learning, or experimenting with code on macOS or iPadOS, particularly those already familiar with Nimble or Quick testing frameworks.
Developers choose Spry because it brings unit testing to Swift Playgrounds with an API identical to Nimble, eliminating the need to rewrite tests when moving from Playgrounds to Xcode projects. Its lightweight design and seamless integration make it ideal for interactive development workflows.
A Mac and iOS Playgrounds Unit Testing library based on Nimble.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Spry's API matches Nimble perfectly, enabling seamless copy-paste of tests from Playgrounds to Xcode projects without modifications, as highlighted in the README.
Works natively in both Xcode and iPad Playgrounds, supporting interactive testing on macOS and iPadOS with downloadable templates.
Provides ready-to-use playground templates with Spry pre-installed, reducing setup time for quick prototyping, as shown in the README badges.
Includes a subset of Nimble's core matchers like equal, beNil, and contain, covering common assertion needs for rapid experimentation.
Lacks key Nimble features like toEventually and async matchers, making it unsuitable for testing asynchronous code, as admitted in the unimplemented list.
Does not support describe, context, or it blocks from Quick, limiting structured test organization and requiring alternative approaches.
Designed exclusively for Swift Playgrounds, not intended for comprehensive Xcode project testing, which restricts its use in production workflows.
Several Nimble matchers are not implemented, such as matchError and throwError, reducing test expressiveness and forcing workarounds.