我在 Xcode 的 Swift 单元测试中遇到了一个非常奇怪的错误。当我存储 getter 的 Float
值时,它可以工作,但是当我将相同的 getter 传递给 XCTAssertEqual
时,它会失败,因为 XCT 函数接收的值是 0
,而不是实际计算的值(在本例中为 800
)。
有人遇到过这种情况吗?
// Rectangle.width = get { return left - right }
let w = metrics.imageDestinationRectangle.width
let h = metrics.imageDestinationRectangle.height
// these work okay
XCTAssertEqual(w, 800, accuracy: 0.001)
XCTAssertEqual(h, 533, accuracy: 0.001)
// these fail: "0" is not equal to "800"
XCTAssertEqual(metrics.imageDestinationRectangle.width, 800, accuracy: 0.001)
XCTAssertEqual(metrics.imageDestinationRectangle.height, 533, accuracy: 0.001)
最佳答案
嗯,我不知道发生了什么,但我做了一些其他相关的编码,然后尝试将 getter 直接放入 XCTAssertEqual 参数中,并且成功了。代码没有改变。奇怪!
关于Swift XCTAssertEqual (Float) 直接传递 getter 时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54701901/