Nimble

Build Status CocoaPods Carthage Compatible Platforms

使用 Nimble 来表达 Swift 或 Objective-C 表达式的预期结果。灵感来自 Cedar

// Swift
expect(1 + 1).to(equal(2))
expect(1.2).to(beCloseTo(1.1, within: 0.1))
expect(3) > 2
expect("seahorse").to(contain("sea"))
expect(["Atlantic", "Pacific"]).toNot(contain("Mississippi"))
expect(ocean.isClean).toEventually(beTruthy())

文档

Nimble 的文档现在位于 Sources/Nimble/Nimble.docc,作为一个文档目录。 您可以轻松地浏览它 quick.github.io/Nimble

安装 Nimble

Nimble 可以单独使用,也可以与其姊妹项目 Quick 结合使用。要同时安装 Quick 和 Nimble,请按照 Quick 文档中的安装说明进行操作。

目前可以通过四种方式安装 Nimble:Swift Package Manager、CocoaPods、Carthage 或使用 git 子模块。

Swift Package Manager

Xcode

要通过 Xcode 的 Swift Package Manager 集成安装 Nimble:选择您的项目配置,然后选择项目选项卡,然后选择 Package Dependencies 选项卡。 点击列表底部的“加号”按钮,然后按照向导将 Quick 添加到您的项目中。 指定 https://github.com/Quick/Nimble.git 作为 url,并确保将 Nimble 添加为单元测试目标的依赖项,而不是您的应用程序目标。

Package.Swift

要使用 Swift Package Manager 测试您的应用程序,请将 Nimble 添加到您的 Package.Swift 并将其与您的测试目标链接。

// swift-tools-version:5.7

import PackageDescription

let package = Package(
    name: "MyAwesomeLibrary",
    products: [
        // ...
    ],
    dependencies: [
        // ...
        .package(url:  "https://github.com/Quick/Nimble.git", from: "13.0.0"),
    ],
    targets: [
        // Targets are the basic building blocks of a package. A target can define a module or a test suite.
        // Targets can depend on other targets in this package, and on products in packages this package depends on.
        .target(
            name: "MyAwesomeLibrary",
            dependencies: ...),
        .testTarget(
            name: "MyAwesomeLibraryTests",
            dependencies: ["MyAwesomeLibrary", "Nimble"]),
    ]
)

请注意,如果您使用 Swift Package Manager 安装 Nimble,则 raiseException 不可用。

CocoaPods

要在 CocoaPods 中使用 Nimble 来测试您的 macOS、iOS、tvOS 或 watchOS 应用程序,请将 Nimble 添加到您的 podfile,并添加 use_frameworks! 行以启用 CocoaPods 的 Swift 支持。

platform :ios, '13.0'

source 'https://github.com/CocoaPods/Specs.git'

# Whatever pods you need for your app go here

target 'YOUR_APP_NAME_HERE_Tests', :exclusive => true do
  use_frameworks!
  pod 'Nimble'
end

最后运行 pod install

Carthage

要在 Carthage 中使用 Nimble 来测试您的 macOS、iOS、tvOS 或 watchOS 应用程序,请将 Nimble 添加到您的 Cartfile.private

github "Quick/Nimble" ~> 13.2

然后按照 Carthage 快速入门 的其余步骤操作,并将 Nimble 与您的单元测试链接。

Git 子模块

要使用 Nimble 作为子模块来测试您的 macOS、iOS 或 tvOS 应用程序,请按照以下 4 个简单步骤操作

  1. 克隆 Nimble 仓库
  2. 将 Nimble.xcodeproj 添加到您项目的 Xcode 工作区
  3. 将 Nimble.framework 链接到您的测试目标
  4. 开始编写预期!

有关每个步骤的更详细说明,请阅读 如何安装 Quick。忽略涉及将 Quick 添加到您的项目的步骤,以便仅安装 Nimble。

隐私声明

Nimble 是一个仅用于测试的库,永远不应包含在提交到 App Store Connect 的二进制文件中。

尽管没有运送到 Apple,但 Nimble 不会,也永远不会收集任何类型的分析或跟踪数据。