XCTAssertEqual 与 Optional(不是 Equatable)

XCTAssertEqual with Optional (not Equatable)

我想声明如下:

XCTAssertEqual(sut.dataSource?.delegate, userInterface, "Data source's delegate should be the user interface")

属性 dataSourcedelegate 是可选的。我尝试用 let 赋值来解包它们,但它基本上归结为

Generic parameter 'T' cannot be bound to non-@objc protocol type 'FetchedResultsControllerDataSourceDelegate'

Type 'FetchedResultsControllerDataSourceDelegate?' does not conform to protocol 'Equatable'

我该怎么做才能断言可选关系已正确设置?

问题是 "equal" 比较值。 NSFetchedResultsControllerDataSourceDelegate 不符合 Equatable 因此无法比较其值。您应该将其标识与 with "identical to ===" 运算符进行比较。

XCTAssertTrue(sut.dataSource?.delegate === userInterface, "Data source's delegate should be the user interface")