ErrorAssertionExpectations 0.4.0

ErrorAssertionExpectations 0.4.0

Jeff Kelley 维护。



ErrorAssertions

tests Documentation Version Swift Package Manager

这是针对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()
    }
}

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

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