我发现如何使用以下代码行在this帖子的模拟器上确认系统警报:
self.viewTester.acknowledgeSystemAlert()
不幸的是,KIF代码包含#if TARGET_IPHONE_SIMULATOR,所以它不能在设备上工作。如何在自动化测试期间绕过设备上的权限警报?
答案 0 :(得分:1)
我有同样的问题,在这里我发现了解决方案:
它的权利比这个KIF功能不适用于设备,它只适用于模拟器!所以,你可以在UITarget中有一个UITest,只有一个测试用例就可以添加这样的UIMonitor:
// ask for all the permission from users then :
_ = addUIInterruptionMonitor(withDescription: "") { alert -> Bool in
let confirmLabels = ["Allow", "OK"]
for (_, label) in confirmLabels.enumerated() {
let allow = alert.buttons[label]
if allow.exists {
allow.tap()
break
}
}
return true
}
// do some UI interaction here like tapping on some view in app
因此,您可以在运行UnitTests之前每次调用此UITest,这将使您的应用程序具备所有权限。
顺便说一句,如果有人有更好的解决方案,请提供我也想知道的原因;)