waitForExpectations 失败时在 UITest 上取得成功

Posted

技术标签:

【中文标题】waitForExpectations 失败时在 UITest 上取得成功【英文标题】:Get success on UITest when waitForExpectations fails 【发布时间】:2017-11-20 02:59:37 【问题描述】:

如果预期元素(在我的情况下为警报)在超时之前(根据服务器请求)未出现,我有一项任务要成功通过 UITest。

代码:

let element = app.alerts["test text"]
let existsPredicate = NSPredicate(format: "exists == true")
expectation(for: existsPredicate, evaluatedWith: element, handler: nil)

waitForExpectations(timeout: 10, handler: nil)

// when timeout expired test should finish with success

没有通过 Internet 找到任何解决方案。

【问题讨论】:

【参考方案1】:

Оооо,你应该注意它是UITest。在这种情况下,期望具有很好的属性:isInverted。将此设置为 true,表示预期不会发生。 )))

let element = app.alerts["test text"]
let existsPredicate = NSPredicate(format: "exists == true")
let expectation = expectation(for: existsPredicate, evaluatedWith: element, handler: nil)
expectation.isInverted = true // if alert doesn't appear during 10 seconds, then test passed

waitForExpectations(timeout: 10, handler: nil)

【讨论】:

太棒了!这正是我所需要的!谢谢你提供这个线索!邮政编码,我会接受你的回答。 我自己添加的。请删除之前的答案。

以上是关于waitForExpectations 失败时在 UITest 上取得成功的主要内容,如果未能解决你的问题,请参考以下文章

使用waitForExpectations Crash SwiftUI

使用 now() 时在 cassandra 中插入查询失败

测试小部件时在颤动中测试 BlocListener 失败

使用 CURDATE() 作为默认值时在 mysql 中创建表失败

c ++ vtk:hello world仅在发布时在运行时失败

当广告加载失败时在 Swift 中隐藏 iAd ADBannerView - 没有委托或委托未实现 didFailToReceiveAdWithError