我正在尝试构建一个单元测试:
// region is a (Double,Double) tuple XCTAssertEqual(region,(0.0,200.0))
但是Xcode给了我一个错误:无法使用类型的参数列表((Double,Double),(Double,Double))调用’XCTAssertEqual’
解决方法
XCTAssertEqual要求传递给它的两个参数是Equatable,您可以从方法签名中看到它们.注意,expression1返回T ?,T必须是Equatable:
func XCTAssertEqual<T : Equatable>(_ expression1: @autoclosure () throws -> T?,_ expression2: @autoclosure () throws -> T?,_ message: @autoclosure () -> String = default,file: StaticString = #file,line: UInt = #line)
但是Swift tuples aren’t Equatable
,所以你不能将它们与XCTAssertEqual一起使用.
元组确实有一个==方法 – 它们只是不符合协议 – 所以你可以做这样的事情:
let eql = region == (0.0,200.0) XCTAssertTrue(eql)
甚至:
XCTAssertTrue(region == (0.0,200.0))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。