【问题标题】:Swift Quick/Nimble - Wait for predicate to matchSwift Quick/Nimble - 等待谓词匹配
【发布时间】: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
  • 很高兴看到更多代码,除非我的回答已经对您有所帮助:)
  • 其余的有点敏感,但其实都一样

标签: ios swift quick-nimble


【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-26
      • 2018-08-14
      相关资源
      最近更新 更多