0
votes

Comment se rendre à une partie autorisée dans les tests UI Xcode

J'ai l'application avec écran de connexion et l'écran qui apparaît après la connexion (partie autorisée).

Quelle est la meilleure approche pour tester ces écrans de la partie autorisée?

J'ai plusieurs idées:

1) D'une manière ou d'une autre, j'ai besoin de supprimer toutes les données de Keychain avant chaque test Et puis je passe tout le flux à chaque fois pour aller au premier écran après la connexion. Lorsque j'ai besoin d'envoyer une demande au backend to Login, j'attends l'écran principal à l'aide de xxx

2), je passe quelques arguments ici xxx < / pré>

afin que je puisse passer un faux jeton et sortie backend acceptera ce jeton , de sorte que mon application saura que cela doit me diriger vers le principal L'écran et toutes les demandes réussiront parce que mon service réseau a ce faux jeton

mais je remplis que c'est un moyen sûr de la sécurité.

Avez-vous des idées Quelle est la meilleure approche et peut-être que vous pouvez donner des conseils d'une meilleure approche?


0 commentaires

3 Réponses :


1
votes

La deuxième idée que vous avez mentionnée est un bon moyen de sauter l'écran de connexion dans les tests. En outre, la mise en œuvre d'un jeton qui passe sera utile pour l'équipe du développeur également. Ces arguments de lancement peuvent être stockés aux paramètres de lancement de schémas.

En outre, si vous mettez en place une liaison profonde de la même manière, cela apportera des améliorations encore plus rapides pour l'équipe AQ ​​et Developer.

Sûrement, ces "raccourcis" doivent être accessibles uniquement lors de l'exécution d'une configuration de débogage (en utilisant #if debug ... )


1 commentaires

Merci pour vos pensées, pour l'instant, je marquais votre réponse aussi correcte que si quelqu'un d'autre donne de nouvelles idées comment archiver ces objectifs



1
votes

À mon avis, votre service de connexion ou quel que soit le service Votre application peut avoir besoin d'exécuter ou d'afficher certains cas d'utilisation, devrait être tout moqueur . Cela signifie dans votre appareil automatisé de l'unité / de l'utilisateur Environnement Votre application va parler à des implémentations de service moquées, cela signifie que la réponse du service de connexion ou de l'autorisation doit être moquée d'être un succès ou une échec, de sorte que vous peut tester les deux.

Pour réaliser que vos services devraient tous être représentés en tant qu'interfaces / Protocoles et les détails de la mise en œuvre / de la mise en œuvre doivent être dans l'environnement de production, de développement ou de test automatisé environnement . < / p>

Je n'entraînerais jamais de réseautage en tests automatisés. Vous devez créer une maxe implémentation de votre service d'autorisation, par exemple, que dans l'environnement de test automatisé pourraient être moqués de donner une réponse du succès ou de l'échec en fonction du test que vous exécutez (et cette configuration que vous pouvez faire dans la méthode de la configuration () peut-être. ).


2 commentaires

Cela est vrai pour les tests unitaires et je les fais de la même manière, mais cela est impossible pour les tests d'interface utilisateur, car les tests d'interface utilisateur lancent votre application réelle sur un simulateur


Il est possible de détecter si l'application est lancée par test (vous aurez besoin d'un autre argument de lancement). Ensuite, vous pouvez passer à un faux serveur si nécessaire. L'autre (et parfois mieux) de se moquer des choses dans l'interface utilisateur est d'utiliser EmpreyRy Cadre, bien qu'il soit toujours en version bêta.



1
votes

La suite de tests la plus authentique se connecterait au début de chaque test (si nécessaire) et signerait le cas échéant lors du démarrage. Cela conserve chaque test autonome autonome et permet à chaque test d'utiliser un ensemble d'informations d'identification différent sans avoir à vérifier s'il est déjà signé dans / doit passer à un autre compte d'utilisateur, car les tests vont toujours décéder à la fin.

Il ne s'agit pas d'une méthode inotérale car il peut ne pas toujours être possible pour le code de déchirure d'exécuter correctement si un test a échoué (puisque l'application peut ne pas être dans l'état que la démolition s'attend, en fonction de votre mise en œuvre), mais si Vous recherchez des tests de bout en bout, en utilisant uniquement les codépaths utilisés par les utilisateurs de la production, c'est une façon de le faire.

L'introduction de la moqueur / encombrement peut rendre vos tests plus indépendants et fiables - à vous de choisir à quel point vous souhaitez refléter l'expérience utilisateur de production dans vos tests.


0 commentaires