中断后等待应用程序空闲

时间:2016-01-04 09:09:33

标签: xcode7 xcode-ui-testing

我有一个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已更改或事件发生。有没有办法触发这个?

1 个答案:

答案 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