gpt4 book ai didi

swift - 使 XCTAssertions 接受函数返回值作为参数

转载 作者:行者123 更新时间:2023-11-30 10:18:53 27 4
gpt4 key购买 nike

在 Swift 中,当有人使用 XCTest 断言时,他们可以编写如下断言:

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())

将成功编译并运行并打印出“This is a test”。但是,以下内容:

XCTAssertFalse(textData())

产生编译错误:类型“(BooleanType, String)”不符合协议(protocol)“BooleanType”

错误的原因是什么?可以采取什么措施(如果有)以使断言接受函数的返回值作为其参数?

最佳答案

XCTAssertFalse 需要一个 bool 参数,在这种情况下,您将传入一个元组 (Boolean, String) 在这种特定情况下,尝试提取 bool 元素:

XCTAssertFalse(testData().0)

它可以在 printText 中工作,因为只要类型匹配,Swift 就会自动将元组解压到函数参数中。

关于swift - 使 XCTAssertions 接受函数返回值作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28446453/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com