直接传递getter时,Swift XCTAssertEqual(Float)失败

时间:2019-02-15 02:33:10

标签: swift xcode unit-testing

我在Xcode的Swift单元测试中遇到了一个非常奇怪的错误。当我存储一个吸气剂的Float值时,它可以工作,但是当我将相同的吸气剂传递给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)

1 个答案:

答案 0 :(得分:0)

嗯,我不知道发生了什么,但是我做了一些其他相关的编码,然后尝试将吸气剂直接放入XCTAssertEqual参数中,并成功了。代码均未更改。奇怪!