Swift Quick/Nimble - 等待谓词匹配
Posted
技术标签:
【中文标题】Swift Quick/Nimble - 等待谓词匹配【英文标题】:Swift Quick/Nimble - Wait for predicate to match 【发布时间】:2019-12-05 07:47:39 【问题描述】:我正在尝试将以下代码块转换为 Quick/Nimble,但没有任何成功
XCTWaiter().wait(for: [XCTNSPredicateExpectation(predicate: NSPredicate(format: "height == 0"),
object: vc.myView.frame)],
timeout: 1)
我尝试了以下但测试没有通过
waitUntil(timeout: 2) done in
expect(vc.myView.frame.height).to(equal(0))
done()
提前感谢您的帮助!
【问题讨论】:
嗨,使用 2 秒超时的目的是什么?另外,错误是什么? 嗯,它之前设置为 1,其目的是等待下拉视图关闭,因此height == 0
很高兴看到更多代码,除非我的回答已经对您有所帮助:)
其余的有点敏感,但其实都一样
【参考方案1】:
我认为“toEventually”是您正在寻找的。示例如下:
expect(vc.myView.frame.height).toEventually(equal(0), timeout: 2)
更多内容请看这里:https://github.com/Quick/Nimble#asynchronous-expectations
【讨论】:
【参考方案2】:您还可以全局设置超时,例如一旦您的测试开始,它就适用于所有toEventually
调用:
灵活 >= 9.0.0
Nimble.AsyncDefaults.timeout = .seconds(2)
灵巧
Nimble.AsyncDefaults.Timeout = 2
Nimble.AsyncDefaults.Timeout = 2
【讨论】:
以上是关于Swift Quick/Nimble - 等待谓词匹配的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift Quick Nimble 中执行 beforeAll
xctest 使用 NSPredicate 最终替换 Quick/Nimble