我有一个ViewController,它将通过
请求访问init上的位置服务if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined)
{
[_locationManager requestWhenInUseAuthorization];
}
这会触发"允许应用在您使用应用时访问您的位置?" -alert。
我使用[self addUIInterruptionMonitorWithDescription:handler:]
对此作出反应。我遇到以下问题:在解除请求对话框后,ui-test不会继续。警报被取消,但Xcode等待应用程序变为空闲,但看起来应用程序 空闲:
t = 67.35s Wait for app to idle
测试失败,因为应用程序卡在这里。如果我点击模拟器,Xcode会记录。
t = 72.27s Synthesize event
并继续测试。
有没有理由,为什么Xcode会试图等待应用?解决方法似乎是告诉Xcode UI已更改或事件发生。有没有办法触发这个?
答案 0 :(得分:10)
在显示提醒后,必须与界面进行交互。这是Xcode 7.2的一个已知错误。只需点击应用程序就可以了,但是是必需的。
addUIInterruptionMonitorWithDescription("Location Dialog") { (alert) -> Bool in
alert.buttons["Allow"].tap()
return true
}
app.buttons["Find Games Nearby?"].tap()
app.tap() // need to interact with the app for the handler to fire
XCTAssert(app.staticTexts["Authorized"].exists)
有关详细信息,请参阅my blog post。