2016-11-28 1 views
2

J'écris l'automatisation de l'interface utilisateur de ma suite de tests avec xcode 8. Cependant, je continue à rencontrer ce problème en essayant de rejeter les alertes.Echec du test de l'interface utilisateur - n'a pas reçu la vue a disparu les notifications dans l'erreur 2.0s

J'utilise actuellement le addUIInterruptionMonitor afin de rejeter mes alertes, mais quand je l'appelle le moniteur d'interruption de feu à l'aide app.tap() je reçois l'erreur échec de test de l'interface utilisateur - n'a pas reçu de vue ne disparaissent les notifications dans les 2.0s erreur

Pourquoi cela se produit-il et comment puis-je empêcher que cela se produise?

Ci-joint mon code de démarrage pour l'application

override func setUp() { 
    super.setUp() 
    XCUIApplication().terminate() 
    continueAfterFailure = false 
    app.launch() 

    addUIInterruptionMonitorWithDescription("Enable Notifications") { (alert) -> Bool in 
     let button = alert.buttons["OK"] 
     if button.exists{ 
      button.tap() 
      return true 
     } 
     return false 
    } 
    app.buttons["Enable notifications"].tap() 

    app.tap() 

    XCTAssert(app.tabBars.buttons["Settings"].exists) 
    app.tabBars.buttons["Settings"].tap() 
} 

Répondre

0

D'abord, ajoutez le moniteur avant app.launch() et vous aurez pas besoin app.tap()

En second lieu, est le app.buttons["Enable notifications"].tap() l'élément déclencheur de l'alerte apparaît, sinon, supprime cette ligne. Troisièmement, si vous renvoyez false sur le gestionnaire du moniteur, le système tapera sur le bouton «annuler» pour cette alerte. Je préfère échouer le test dans ce cas, car il s'agit d'une alerte système inattendue.