Build Status CocoaPods Carthage Compatible Platforms

Quick 是一个 Swift 和 Objective-C 的行为驱动开发框架。它的灵感来源于 RSpecSpectaGinkgo

// Swift

import Quick
import Nimble

class TableOfContentsSpec: QuickSpec {
  override class 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 与 Nimble 一起使用 — Nimble 是一个用于测试的匹配器框架。你可以了解为什么 XCTAssert() 语句会让你的期望不明确,以及如何使用 Nimble 断言来解决这个问题,请点击此处了解更多。

Swift 版本

Quick 和 Nimble 的某些版本仅支持特定版本的 Swift。根据你的项目使用的 Swift 版本,你应该使用特定版本的 Quick 和 Nimble。请使用下表确定哪些版本的 Quick 和 Nimble 与你的项目兼容。

Swift 版本 Quick 版本 Nimble 版本
Swift 5.2 v3.0.0 或更高版本 v9.0.0 或更高版本
Swift 4.2 / Swift 5 v1.3.2 或更高版本 v7.3.2 或更高版本
Swift 3 / Swift 4 v1.0.0 或更高版本 v5.0.0 或更高版本
Swift 2.2 / Swift 2.3 v0.9.3 v4.1.0

文档

所有文档都可以在 Documentation 文件夹中找到,包括 CocoaPods、Carthage、Git 子模块、Swift Package Manager 等的详细安装说明。例如,你可以通过将以下内容添加到你的 Podfile 文件中,使用 CocoaPods 安装 Quick 和 Nimble

# Podfile

use_frameworks!

target "MyApp" do
  # Normal libraries

  target 'MyApp_Tests' do
    inherit! :search_paths

    pod 'Quick'
    pod 'Nimble'
  end
end

你也可以通过将以下内容添加到你的 Package.swift 文件的 dependencies 部分,使用 Swift Package Manager 安装 Quick 和 Nimble

dependencies: [
    .package(url: "https://github.com/Quick/Quick.git", from: "7.0.0"),
    .package(url: "https://github.com/Quick/Nimble.git", from: "12.0.0"),
],

使用 Quick 的项目

超过一万个应用使用了 Quick 和 Nimble,但是,由于它们没有包含在应用二进制文件中,因此也没有出现在“常用库”博客文章中。因此,非常感谢能够通过编制一份使用它们的组织和项目列表来提醒贡献者,他们的努力是有价值的。

你的组织或项目是否使用了 Quick 和 Nimble? 如果是,请将你的项目添加到列表中

谁在使用 Quick

与使用 Quick 的项目类似,我们也很想知道人们为什么使用 Quick 和 Nimble。有没有你喜欢的功能?有没有你觉得还行的功能?有没有我们提供但没人使用的功能?

对 Quick(或 Nimble)有什么积极的评价吗? 如果有,请在此处提供推荐

隐私声明

Quick 是一个仅用于测试的库,绝不应包含在提交到 App Store Connect 的二进制文件中。如果你的提交的二进制文件中包含 Quick,你的应用将会被拒绝,因为 Quick 使用了私有 API 以更好地与 Xcode 集成。

尽管 Quick 不会发布到 Apple,但它现在不会,将来也永远不会收集任何类型的分析或跟踪数据。

许可

Apache 2.0 许可。详情请参阅 LICENSE 文件。