ErrorAssertions
这是针对Swift断言的包装,它接受Error
实例而不是String
,并提供一系列测试函数来测试这些断言。
入门
要使用ErrorAssertions,只需在Swift源文件的顶部导入它
import ErrorAssertions
通过这样做,由于Swift编译器会优先导入的模块而不是主Swift模块,所以您会得到诸如fatalError(_:file:line:)
之类的ErrorAssertion函数版本。
使用Error类型
在调用断言方法时,如果您想使用Error
而不是字符串,请使用错误版本来调用
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