2017-10-04 13 views
0

J'écris un test d'interface utilisateur automatisé en utilisant des outils natifs. Sur un flux, il y a une authentification par empreinte digitale. Comment puis-je le passer, pour passer à l'écran suivant?iOS XCUITest simuler l'empreinte digitale

Répondre

2

Vous ne pouvez pas truquer une empreinte digitale dans un UITest. Pour passer l'authentification et tester la partie de votre application qui est protégée par l'invite TouchID, vous pouvez exécuter le test sur un périphérique qui n'a pas activé TouchID. Ou exécutez-le sur un simulateur (sans activer TouchID). Lorsque TouchID n'est pas activé, le système d'exploitation vous demande le code d'accès de l'appareil.

Vous pouvez entrer le mot de passe et passer l'authentification. Lorsque vous exécutez le test sur un simulateur, vous pouvez entrer n'importe quel mot de passe. Cela passera toujours.

Voici un test qui passe par exemple l'authentification en entrant un code d'accès:

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

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

    let passcodeInput = springboard.secureTextFields["Passcode field"] 
    passcodeInput.tap() 
    passcodeInput.typeText("abc\r") 

    // continue test 
    .... 
} 
+0

Je sais que c'est un peu vieux, mais cela a rendu ma journée! J'essayais de faire ça pendant des jours! Nous construisons une application native pour iOS et Android et j'ai essayé de construire un test XCUI pour cela pendant des jours maintenant. Merci! – ShaneG