Skip to content
The Swift (and Objective-C) testing framework.
Swift Objective-C Ruby Shell
Branch: master
Clone or download

Latest commit

ikesyo Merge pull request #948 from Quick/fix-sample-code
Fix sample code in SharedExamples.md
Latest commit 173a821 Feb 12, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github [CI] Run tests with newer Xcode and Swift versions Feb 12, 2020
Documentation Fix sample code in SharedExamples.md Feb 12, 2020
Externals Update Nimble to 8.0.4 Sep 14, 2019
Quick Templates Add space for copyright alignment in template files May 13, 2018
Quick.xcodeproj Add a failing test for 'Selected tests' invocation Jul 22, 2019
Quick.xcworkspace [Xcode] Enable New Build System May 24, 2018
Sources Added empty default flags to xdescribe and xcontext Jan 15, 2020
Tests Added empty default flags to xdescribe and xcontext Jan 15, 2020
script Update CocoaPods to 1.7.0.beta.1 Mar 3, 2019
.gitignore Update Nimble to 7.0.3 Nov 23, 2017
.gitmodules Fix Xcode 8 GM compatibility Sep 7, 2016
.hound.yml Update .hound.yml Apr 4, 2019
.swift-version Bump Swift requirement to 4.2 Jan 14, 2019
.swiftlint.yml Update .swiftlint.yml Aug 25, 2017
.travis.yml [CI] Run tests with newer Xcode and Swift versions Feb 12, 2020
CODE_OF_CONDUCT.md Add quickorg@icloud.com to CoC Aug 19, 2016
CONTRIBUTING.md Fix typos in Contributing documentation file Oct 28, 2019
Dangerfile Issue-689: Improve QuickBot lint warning Oct 30, 2018
Gemfile [CI] Use GitHub Actions for macOS jobs Sep 11, 2019
Gemfile.lock [CI] Use GitHub Actions for macOS jobs Sep 11, 2019
LICENSE LICENSE: Migrate from MIT to Apache 2.0 license Nov 1, 2014
Package.resolved Update Nimble to 8.0.0 Mar 3, 2019
Package.swift [SwiftPM] Don't exclude QuickTests/Helpers Apr 16, 2019
Package@swift-4.2.swift [SwiftPM] Update Package@swift-4.2.swift as well Apr 16, 2019
Quick.podspec Bumping version to 2.2.0 Sep 14, 2019
README.md [README] Add 'Accio supported' badge Apr 9, 2019
Rakefile [CI] Fix GitHub Actions breakage and restore Travis build matrix for … Nov 18, 2019

README.md

Build Status CocoaPods Carthage Compatible Accio supported Platforms Reviewed by Hound

Quick is a behavior-driven development framework for Swift and Objective-C. Inspired by RSpec, Specta, and Ginkgo.

// 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 4.2 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

Projects using Quick

Over ten-thousand apps use either Quick and Nimble however, as they are not included in the app binary, neither appear in “Top Used Libraries” blog posts. Therefore, it would be greatly appreciated to remind contributors that their efforts are valued by compiling a list of organizations and projects that use them.

Does your organization or project use Quick and Nimble? If yes, please add your project to the list.

Who uses Quick

Similar to projects using Quick, it would be nice to hear why people use Quick and Nimble. Are there features you love? Are there features that are just okay? Are there some features we have that no one uses?

Have something positive to say about Quick (or Nimble)? If yes, provide a testimonial here.

License

Apache 2.0 license. See the LICENSE file for details.

You can’t perform that action at this time.