ErrorAssertions

tests Documentation Version Swift Package Manager

Swift 断言的包装器,它使用 Error 实例而不是 String,以及一套测试函数来测试这些断言。

入门指南

要使用 ErrorAssertions,只需在 Swift 源文件顶部导入它

import ErrorAssertions

只需这样做,因为 Swift 编译器会优先选择导入的模块而不是主 Swift 模块,您将获得 ErrorAssertion 版本的函数,如 fatalError(_:file:line:)

使用 Error 类型

要在调用断言方法时使用 Error 而不是 String,请使用错误版本

import ErrorAssertions

doSomething(completionHandler: { error in
    if let error = error {
        fatalError(error)
    }
})

您可以将 Error 类型与 fatalError()assert()assertionFailure()precondition()preconditionFailure() 一起使用。

测试断言

在您的测试中,导入 ErrorAssertionExpectations 模块来测试您的应用程序中进行的断言(只要您已经导入了 ErrorAssertions)。 在您的测试用例中,使用期望方法

func testThatAnErrorHappens() {
    expectFatalError {
        doAThingThatProducesAFatalError()
    }
}

还有一些版本接受 ErrorString 并验证生成的错误是否是您期望的错误

func testThatASpecificErrorHappens() {
    expectFatalError(expectedError: URLError.badURL) {
        loadURL("thisisnotaurl")
    }
}

安装

Swift Package Manager

Swift Package Manager 是安装 ErrorAssertions 的首选方式。 将此存储库添加为依赖项

dependencies: [
    .package(url: "https://github.com/SlaunchaMan/ErrorAssertions.git",
             from: "0.2.0")
]

在您的目标中,将 ErrorAssertions 添加为主要目标的依赖项,如果您使用测试支持,则将 ErrorAssertionExpectations 添加到测试目标

targets: [
    .target(name: "App", dependencies: ["ErrorAssertions")]
    .testTarget(name: "AppTests", dependencies: ["ErrorAssertionExpectations"])
]

CocoaPods

要将 ErrorAssertions 与 CocoaPods 一起使用,请在您的应用程序中使用主 pod 作为依赖项,并在您的测试中使用 ErrorAssertionExpectations pod

target 'App' do
    pod 'ErrorAssertions'
end

target 'AppTests' do
    pod 'ErrorAssertionExpectatoins'
end