Comment testez-vous les codes d'application et d'interface utilisateur?


10

J'adore écrire des tests unitaires et je suis d'accord pour dire qu'ils sont un excellent moyen de tester le code, de prévenir les régressions, etc. Cependant, je me trouve incapable de les écrire autant que la grande majorité du code sur lequel je travaille jour après jour est une application. code qui affiche une interface utilisateur pour l'utilisateur. Existe-t-il un bon moyen de tester le code d'application unitaire? Quelles sont les meilleures pratiques ici?

Je ne cherche pas une réponse spécifique telle qu'un cadre, etc. Mais plutôt, en général, comment abordez-vous ce problème?


Qu'est-ce que le "code d'application qui affiche l'interface utilisateur"? Parlez-vous du C dans MVC?
Martin Wickman

Je parle de tout type d'interface graphique - JavaScript / HTML, C ++ avec MFC, WinForms, WPF, etc ...
Justin Ethier

MVVM est facile à tester unitaire. Voir Modèle de commande
Amir Rezaei

@amir - Avez-vous des références ou des informations supplémentaires?
Justin Ethier

Réponses:


8

Pour tester l'interface utilisateur réelle, Selenium fonctionne bien.

Si vous voulez des tests unitaires réels, votre stratégie consiste à repousser autant de logique que possible depuis l'interface utilisateur réelle, généralement dans un objet ViewModel. Vous pouvez ensuite écrire des tests unitaires sur l'objet ViewModel.

En d'autres termes, mettez le moins de logique possible dans l'interface utilisateur réelle, afin que le test unitaire puisse avoir lieu ailleurs.


C'est une bonne conception pour SoC, il ne devrait pas y avoir de logique domaine / métier dans l'interface utilisateur. Beaucoup de logique client - l'interactivité / validation peut aller dans l'interface utilisateur avec JavaScript, qui est testable à l'unité.
StuperUser

1

J'ai réussi à tester mon application avec MSTest et à tester mon Javascript avec QUnit et à récupérer les résultats de ces tests avec un seul test unitaire MSTest qui utilise WatiN (on m'a suggéré Selenium , qui a la capacité d'enregistrer des tests aussi, mais trouvé WatiN mieux pour automatiser proprement).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.