如何断言throw
中的函数没有Swift
错误?在Objective C
中,此案例中有一个XCUnit
宏,但我无法在Swift
中找到它。
答案 0 :(得分:3)
对此没有特定的XCTest功能,但是自己测试非常简单。只需在发生错误时编写do
/ try
/ catch
设置XCTFail
,就像@JAL评论中的开发人员论坛链接一样:
// generalized to a function
func AssertNoError(message: String = "", file: String = #file, line: UInt = #line, _ block: () throws -> ()) {
do {
try block()
} catch {
let msg = (message == "") ? "Tested block threw unexpected error." : message
XCTFail(msg, file: file, line: line)
}
}
// in use
AssertNoError(someVoidToVoidFunc)
AssertNoError("reason", { someFuncThatTakes(parameters) })
答案 1 :(得分:2)
除了@ rickster的回答,如果您使用的是Nimble匹配器我真的推荐,您可以写下这样的期望:
input