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

标签 swift xcode unit-testing

我在 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/

相关文章:

ios - 如何根据按住 UIButton 的时间来加载 View ?

ios - Firebase 将数据插入数据库三次而不是一次

swift - SceneKit 渲染器功能不能 Swift 工作?

ios - 使用 uipageviewcontroller Xcode 创建书本类型翻转动画

iphone - iOS 上 Xcode 4 的 OCUnit 示例?

unit-testing - Angular 2 + Jasmine - 测试元素是否可见

python - 如何用pytest只打印摘要?

ios - subview 永远不可见

Swift 属性观察器 - didset 与 willset 使用的示例

ios - 使用 UserDefaults 设置全局变量