xcode – XCTest一个元组

我正在尝试构建一个单元测试:
// 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))

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...