2017-06-07 1 views
0

J'ai un bouton qui envoie l'utilisateur à l'application Maps et je veux vérifier si l'utilisateur a quitté l'application. Une idée de comment je peux vérifier cela? J'ai essayé d'ajouter un AssertFalse en utilisant un élément de l'application en cours de test, mais cela ne fonctionne pas car il ne peut pas récupérer les éléments de l'application, car il n'est pas au point.Comment vérifier si j'ai quitté l'application testée dans un test d'interface utilisateur?

+0

Je voudrais essayer de définir une attente visible à la self.view.window et d'observer si elle change à false. Voir comment ici: http://masilotti.com/ui-testing-cheat-sheet/ –

+0

J'ai essayé cette solution (je suppose que vous vous référez à la section "Comment affirmer une vue est sur l'écran"), mais semble fonctionner seulement si vous voulez vérifier le passage entre 2 vues ou des fenêtres dans l'application. – ioana

+0

Ensuite, ajoutez une attente pour la notification: AppWillEnterBackground dans votre test d'interface utilisateur avec un délai d'expiration long (https://stackoverflow.com/questions/9011868/whats-the-best-way-to-detect-when-the-app-is- entrer-le-fond-pour-ma-vie) –

Répondre

0

Dans iOS 11, vous pouvez le faire en utilisant XCUIApplication.state pour voir si l'application est en arrière-plan ou au premier plan, mais ce n'est pas possible dans Swift 3 et ci-dessous.

+0

Cela semble génial. Je vais essayer dès que je ferai la mise à jour. Merci! – ioana

+1

Ceci n'est pas une fonctionnalité Swift. C'est une fonctionnalité iOS 11. Cela fonctionne également avec ObjC dans iOS 11. – dasdom

+0

Est-il possible d'obtenir un ensemble d'applications ciblées? – Degard