捕获火花 0.2.0

捕获火花 0.2.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新版本2015年9月
SPM支持SPM

Marius Rackwitz维护。



捕获火花是一个Swift测试框架,它帮助您对代码的错误处理进行预期测试。为此,它提供了两个高阶函数,这些函数接受抛出函数并检查给定的闭包是否抛出或未抛出。它与XCTest提供的预期器无缝集成。

使用方法

AssertNotThrow

AssertNotThrow 允许您对failable函数的愉快路径编写安全测试。它帮助您避免在测试中使用 try! 操作符。

如果您想测试一个通常可能会失败的功能,您可能会考虑使用 try。但这将意味着您必须将测试方法声明为抛出,这会导致 XCTest 不再执行测试。

因此,结果通常是您需要编写以下内容:

XCTAssertEqual(try! fib(x), 21)

如果表达式失败,整个测试套件不会执行得更远并立即中止,这在 CI 上非常不理想,而且在您使用 TDD 的工作流程中也是如此。

相反,您现在可以编写以下内容

AssertNotThrow {
    XCTAssertEqual(try fib(x), 21)
}

或者

AssertNotThrow(try fib(x)).map { (y: Int) in
    XCTAssertEqual(y, 21)
}

如果在表达式中出现故障,测试失败。

AssertThrow

AssertThrow 允许您轻松编写failable函数的异常路径的详尽测试。它帮助您避免在测试中反复编写相同的样板代码。

如果您想测试一个功能,它会因为给定的参数而失败,您通常会需要编写以下内容:

do {
    try fib(-1)
    XCTFail("Expected to fail, but did not failed!")
} catch Error.ArgumentMayNotBeNegative {
    // succeed silently
} catch error {
    XCTFail("Failed with a different error than expected!")
}

相反,您现在可以编写以下内容

AssertThrow(Error.ArgumentMayNotBeNegative) {
    try fib(-1)
}

如果表达式或闭包没有抛出预期的错误,则测试失败。

安装

捕获火花通过 CocoaPods 提供。要安装它,只需将其添加到Podfile中的测试目标

use_frameworks!
target "AppTest" do
  pod 'CatchingFire'
end

作者

Marius Rackwitz,[email protected]
在 Twitter 上找到我 @mrackwitz

许可证

版本可在MIT许可证下获得。有关更多信息,请参阅 LICENSE 文件。