0
在斯威夫特,當有人使用XCTest斷言,他們可以寫這樣的斷言:讓XCTAssertions接受函數的返回值作爲參數
XCTAssertTrue(foo.sameAs(bar), "\(foo) is not equal to \(bar)")
這使得更多的情況下,當斷言失敗讓別人知道更多關於事情失敗的原因。
進一步是這樣的:
func printText(shouldPrint: BooleanType, text: String) {
if shouldPrint {
println("\(text)")
}
}
func textData() -> (BooleanType, String) {
return (true, "This is a test.")
}
printText(textData())
將編譯並運行成功打印出「這是一個考驗。」但是,下面的:
XCTAssertFalse(textData())
產生編譯錯誤:類型(BooleanType,字符串)「不符合協議「BooleanType」
什麼是錯誤的原因,有什麼東西,可以這樣做,因此斷言將接受來自函數的返回值作爲其參數?
罷工,我會猜測這是因爲'XCTAssertFalse(condition,format ...)',即它是一個可變參數函數,所以參數不能可靠地解壓縮。 – 2015-02-12 05:36:05