2016-03-16 4 views
1

Я пишу тестовый пример UI в Xcode 7 с новой инфраструктурой автоматизации, но я не получаю имя метода, чтобы проверить, появилось ли подсказку или нет, и затем отклонить подсказку с сенсорным идентификатором, которая отображается в моем приложении.Dimiss Touch Id action в XCode 7 Автоматизация пользовательского интерфейса

ответ

0

Вы можете отклонить приглашение Touch ID, недействив аутентификацию LAContext. Отвергая TouchID приглашение вводится в iOS9: -

func invalidateAuthenticationAlert(authContextObjext: LAContext){ 

    print("Dismiss current prompt") 
    authContextObjext.invalidate() 
} 

Помните: -

  • Контекст аннулируется автоматически, когда он (авто) выпущен. Этот метод позволяет аннулировать его вручную, пока он все еще находится в области видимости.

  • Недействительность прекращает любую существующую оценку политики, и соответствующий вызов завершится с LAErrorAppCancel. После того, как контекст был признан недействительным, он не может использоваться для оценки политики, и попытка сделать это потерпит неудачу с LAErrorInvalidContext.

  • Недействительный контекст, который уже был признан недействительным, не влияет.

+0

Его довольно легко убрать предупреждение с помощью кода, но я хочу отслеживать оповещение о тревоге системы, появившееся в пользовательском интерфейсе в тесте UI –

+0

Я искал сделать то же самое. Кажется, что TouchID Enrolled и Simulated Finger Touch функциональности Simulator не могут быть реплицированы с помощью кода. Не могли бы вы отправить сообщение, если найдете ответ? Если нет, возможно, вам захочется рассмотреть вопрос о предоставлении функции Apple. –

1

я не мог имитировать прикосновение пальца, но я был в состоянии отменить сенсорную приглашение ID с помощью addUIInterruptionMonitorWithDescription API доступна в тестовом рамках

я использовал код ниже, чтобы закрыть диалоговое

addUIInterruptionMonitorWithDescription("Touch ID") { (alert) -> Bool in 
       alert.buttons["Cancel"].tap() 
       return true 
      } 
      app.tap() 
+0

Кажется, что монитор больше не работает в Xcode 9. Блок завершения не вызывается – Doro

0

В Xcode 9 вы можете получить доступ к Springboard, чтобы отклонить приглашение TouchID:

func testExample() { 
    let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard") 
    let app = XCUIApplication() 
    app.launch() 

    // this causes the TouchID prompt to be displayed 
    app.buttons["Press Me!"].tap() 

    if springboard.alerts.buttons["Cancel"].waitForExistence(timeout: 10) { 
     springboard.alerts.buttons["Cancel"].tap() 
    } 

    // continue test 
}