Code
Quick – The Swift (and Objective-C) testing framework

Quick is a behavior-driven development framework for Swift and Objective-C. Inspired by RSpec, Specta, and Ginkgo.
Quick example
// Swift
import Quick
import Nimble
class TableOfContentsSpec: QuickSpec {
override func spec() {
describe("the 'Documentation' directory") {
it("has everything you need to get started") {
let sections = Directory("Documentation").sections
expect(sections).to(contain("Organized Tests with Quick Examples and Example Groups"))
expect(sections).to(contain("Installing Quick"))
}
context("if it doesn't have what you're looking for") {
it("needs to be updated") {
let you = You(awesome: true)
expect{you.submittedAnIssue}.toEventually(beTruthy())
}
}
}
}
}
Nimble
Quick comes together with Nimble — a matcher framework for your tests. You can learn why XCTAssert()
statements make your expectations unclear and how to fix that using Nimble assertions here.
Swift Version
Certain versions of Quick and Nimble only support certain versions of Swift. Depending on which version of Swift your project uses, you should use specific versions of Quick and Nimble. Use the table below to determine which versions of Quick and Nimble are compatible with your project.
Swift version | Quick version | Nimble version |
---|---|---|
Swift 5.2 | v3.0.0 or later | v9.0.0 or later |
Swift 4.2 / Swift 5 | v1.3.2 or later | v7.3.2 or later |
Swift 3 / Swift 4 | v1.0.0 or later | v5.0.0 or later |
Swift 2.2 / Swift 2.3 | v0.9.3 | v4.1.0 |
Documentation
All documentation can be found in the Documentation folder, including detailed installation instructions for CocoaPods, Carthage, Git submodules, and more. For example, you can install Quick and Nimble using CocoaPods by adding the following to your Podfile:
# Podfile
use_frameworks!
target "MyApp" do
# Normal libraries
abstract_target 'Tests' do
inherit! :search_paths
target "MyAppTests"
target "MyAppUITests"
pod 'Quick'
pod 'Nimble'
end
end
