swift - ios自动化测试UITests有什么延迟等待的方法?
PHP中文网
PHP中文网 2017-04-18 09:43:17
[iOS讨论组]

自动化测试延迟等待,比如页面还没加载出来,需要等待加载完再继续执行后续操作,在规定时间内无法响应则另做加载失败的操作。

就是希望能像Selenium WebDriver那种,类似
tjbb = WebDriverWait(browser, 10).until(

EC.presence_of_all_element_located((By.CLASS_NAME, "domName"))

);
browser.find_element_by_class_name("domName2").click()
虽然不是WebDriver,但目前用pressForDuration(2)的时候,固定等待2秒,测试有时候正常有时候不正常,主要是在有网络请求延迟导致UI有延迟响应的情况下发生。

PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
高洛峰

单元测试里面有个重要的方法叫做expectation(期望目标),用于等待异步过程,详见以下案例:

// 首先设置一个期望目标,如果异步调用不满足这个目标则可以采用等待直到目标达成或超时
let expectation = self.expectation(description: "等待异步调用过程结束")

// 调用异步过程
performSomethingAsync {
  test1, test2, test3 in

  XCTAssertEqual(test1, 0)
  XCTAssertEqual(test2, 200)
  XCTAssert(test3 != nil)

  // 所有目标都已经达到,通知主测试线程
  expectation.fulfill()
}

// 设定等待期望目标时间为10秒钟
self.waitForExpectations(timeout: 10) { 
  error in
  if let error = error {
      XCTFail("超时错误 \(error.localizedDescription)")
  }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号