gpt4 book ai didi

ios - Xcode UI 单元测试和权限警报

转载 作者:搜寻专家 更新时间:2023-11-01 07:07:51 27 4
gpt4 key购买 nike

我正在为我的应用程序进行 UI 单元测试,并试图弄清楚如何在系统显示请求访问联系人权限的警报时自动让测试框架单击“确定”。

到目前为止,我已经查看了这四个 SO 帖子,并尝试了各种建议,但仍然无法让它工作:

XCTest app tests and permissions alerts

Xcode 7 UI Testing: how to dismiss a series of system alerts in code

Xcode UI Testing allow system alerts series

Xcode 7 UI Testing: Dismiss Push and Location alerts

这是我目前正在尝试的——但是,权限对话框仍然没有被自动接受;测试在继续之前等待我单击“确定”: func testApp() {

    self.addUIInterruptionMonitor(withDescription: "MyDescription", handler: { (alert) -> Bool in
let button = alert.buttons["OK"]
if button.exists {
button.tap()
return true
}
return false
})

let app = XCUIApplication()
app.launch()
...
app.tap()
...
}

编辑:这是我根据@ad-johnson 的建议所做的更改:

var app: XCUIApplication!

override func setUp() {
super.setUp()

continueAfterFailure = false
app = XCUIApplication()

addUIInterruptionMonitor(withDescription: "Contact Auth")
{ (alert) -> Bool in if alert.buttons["OK"].exists {
alert.buttons["OK"].tap()
}
return true }

app.launch()
}


func testScreenshots() {
app.tap()
...
}

最佳答案

可能不太有用,但这与我所拥有的相匹配(允许访问定位服务,所以我等待“允许”按钮。)唯一的区别是我的顺序是 1) let app= 2 ) 添加监视器 3) 启动应用程序。全部在 setup() 中。 app.tap 在 func testApp() 中。 XCUIApplication() 每次被调用时都会创建一个新的应用程序实例:我想我会尝试在第一个实例中将其移动到监视器之前。这是我的设置方法(忽略 UITestHelper 调用):

override func setUp() {
super.setUp()

continueAfterFailure = false
app = XCUIApplication()

// ensure app is currently authorised. If the first install is to
// happen then the settings won't exist yet but that's ok, the test
// will handle the Location Services prompt and allow.
UITestHelper.resetAuthorisation(setToInUse: true)

addUIInterruptionMonitor(withDescription: "Location Services")
{ (alert) -> Bool in if alert.buttons["Allow"].exists {
alert.buttons["Allow"].tap()
}
return true }

app.launch()
}

和我的测试:

func testDoesNotAlertReminderIfAuthorised() {

// given

// When
app.tap()
....

关于ios - Xcode UI 单元测试和权限警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47003459/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com