В 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())
Скомпилируется и успешно запустится, распечатав «Это тест». Однако следующее:
XCTAssertFalse(textData())
выдает ошибку компиляции: тип '(BooleanType, String)' не соответствует протоколу 'BooleanType'
В чем причина ошибки и что можно сделать, чтобы утверждение принимало возвращаемые значения из функции в качестве аргументов?