ErrorAssertions
Swift 断言的包装器,使用 Error
实例而不是 String
,并提供一系列测试函数来测试这些断言。
入门指南
要使用 ErrorAssertions,只需将它在您的 Swift 源文件顶部导入
import ErrorAssertions
只需这样做,因为 Swift 编译器会优先考虑已导入的模块而不是主 Swift 模块,您就会得到类似 fatalError(_:file:line:)
的函数的 ErrorAssertion 版本。
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()
}
}
也有一些版本是使用 Error
或 String
并验证产生的错误是否符合预期
func testThatASpecificErrorHappens() {
expectFatalError(expectedError: URLError.badURL) {
loadURL("thisisnotaurl")
}
}
安装
Swift 包管理器
Swift 包管理器是安装 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
要使用 CocoaPods 与 ErrorAssertions,将主 pod 作为您的应用程序的依赖项,并在测试中将 ErrorAssertionExpectations pod 添加为依赖项
target 'App' do
pod 'ErrorAssertions'
end
target 'AppTests' do
pod 'ErrorAssertionExpectatoins'
end