测试函数不会引发错误

时间:2015-12-04 17:27:13

标签: swift cocoa tdd swift2

如何断言throw中的函数没有Swift错误?在Objective C中,此案例中有一个XCUnit宏,但我无法在Swift中找到它。

2 个答案:

答案 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