在某些情况下绕过 Swift 中的 UI 测试用例
Posted
技术标签:
【中文标题】在某些情况下绕过 Swift 中的 UI 测试用例【英文标题】:By pass UI TestCases in Swift for some cases 【发布时间】:2021-08-14 10:04:13 【问题描述】:我正在 ios 中实现 UITestCases
,但在实现权限时遇到了问题。进行一些操作。
只有授权的人才能进入应用程序的某些部分,如果警报打开,那么我们需要跳过UITestCases
进入下一页并跳转到其他UITestCases
。
请查看应用截图。
app.buttons["Fill out"].tap()
在这段代码之后,我需要检查警报是否可见,然后按下关闭按钮并跳过下面的代码
let textViewsQuery = app/*@START_MENU_TOKEN@*/.textViews/*[[".scrollViews.textViews",".textViews"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/
textViewsQuery.otherElements["4. Test App"].doubleTap()
let textView = app.scrollViews.children(matching: .textView).element
textView.swipeDown()
textView.children(matching: .textView).element(boundBy: 0).tap()
app.navigationBars["Fill Out"].buttons["Back"].tap()
【问题讨论】:
【参考方案1】:您需要添加一个检查此类警报的中断监视器。
app.launch()
addUIInterruptionMonitor(withDescription: "Permission Dialog")
(alert) -> Bool in
alert.buttons["dismiss"].tap()
return true
app.tap()
【讨论】:
将XCTSkipIf(_:_:file:line:)
与上述中断监视器一起使用,以合理的理由跳过测试用例。以上是关于在某些情况下绕过 Swift 中的 UI 测试用例的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Xcode 中的 UI 测试类的目标中包含 SwiftyUserDefaults.swift?