什么是XCTAssertEqualObjects的替代品?
不确定何时,但至less在Xcode 7.2中, XCTAssertEqualObjects
不再可用。
有没有替代这个,而不必诉诸?
XCTAssertTrue(foo == bar)
请注意,苹果公司的“编写testing类和方法”已经过时了,仍然是指缺less的类。
对于Swift,你可以使用XCTAssertEqual
。
你的对象需要实现Equatable
协议,所以macros可以使用==
。
例:
import XCTest class A: Equatable { let name: String init(name: String) { self.name = name } } func ==(lhs: A, rhs: A) -> Bool { return lhs.name == rhs.name } class FooTests: XCTestCase { func testFoo() { let a = A(name: "foo") let a1 = A(name: "foo") let b = A(name: "bar") XCTAssertEqual(a, a) XCTAssertEqual(a, a1) XCTAssertEqual(a, b) // will fail } }
我会更具体一点你正在testing。
平等和身份是不一样的,特别是在价值更丰富的Swift中。
如果要testing符合Equatable
平等,则使用:
XCTAssertTrue(a == b)
如果你想testing两个引用types是相等的:
XCTAssertTrue(a === b)
我觉得这样比较好,因为这个说法更明确。 是相同还是相同的对象。
请记住关于Swift中值types的WWDC15会议 – build议您始终使您的值types符合Equatable
。
- 如何使用xCode 5在新的iOS 8上安装应用程序?
- GCDAsyncSocket在Swift中
- IOS用xib文件inheritance一个UIViewController
- iOS的uma arquiteturarobusta em seu projeto iOS
- 如何将数组转换为UnsafeMutablePointer <UnsafeRawPointer?> Swift 3.0?
- 在单个版本中启动多个模拟器-XCode 9和XCode 10
- ios界面iVar vs物业
- PFFVideosUtils.logInInBackgroundWithReadPermissions,swift 1.2,返回的用户为零
- UIStoryboard从应用程序委托加载