Les meilleures pratiques pour l'intégration de l'ATS en développement d'applications web?

StackOverflow https://stackoverflow.com/questions/18601

  •  09-06-2019
  •  | 
  •  

Question

Les tests unitaires et ASP.NET les applications web sont un point ambigüe dans mon groupe.Le plus souvent, les bonnes pratiques en matière de dépistage de l'automne à travers les fissures et les applications web finissent par vivre plusieurs années sans essais.

La cause de cette douleur au point tourne généralement autour de les tracas de la rédaction de l'INTERFACE utilisateur de l'automatisation de la mi-développement.

Comment avez-vous ou votre organisation, l'intégration des meilleures TDD pratiques de développement d'applications web?

Était-ce utile?

La solution

Les tests unitaires seront réalisables si vous séparez vos couches de façon appropriée.Comme Rob Cooper implicite, ne mettez pas de logique dans votre Formulaire en ligne autres que de la logique de gérer votre présentation.Toutes les autres choses de la logique et de couches de persistance doivent être conservés dans des classes séparées, et puis vous pouvez les tester individuellement.

Pour tester l'interface graphique certaines personnes aiment le sélénium.D'autres se plaignent que c'est une douleur à mettre en place.

Autres conseils

Je couche la demande et au moins une unité de test à partir du présentateur/contrôleur (selon votre préférence, mvc/mvp) de la couche de données.De cette façon, j'ai une bonne couverture de test sur la majeure partie du code qui est écrit.

J'ai regardé FitNesse, Watin et le Sélénium dans les options pour automatiser l'INTERFACE utilisateur de test mais je n'ai pas autour de l'utilisation de ces sur tous les projets, de sorte que nous restons avec tests sur les humains.FitNesse était celle que j'étais penché vers, mais je ne pouvais pas présenter ce ainsi que l'introduction de TDD (le fait de me faire mal?Je ne l'espère pas!).

C'est une bonne question, que je vais être abonnés aussi :)

Je suis encore relativement nouveau pour web dev, et moi aussi, je suis en train de regarder beaucoup de code qui est en grande partie pas été testé.

Pour moi, je continue à l'INTERFACE utilisateur aussi léger que possible (normalement seulement quelques lignes de code) et de tester la merde hors de tout le reste.Au moins je peux avoir confiance que tout ce qu'il fait pour l'INTERFACE utilisateur est aussi correct que possible.

Est-il parfait?Peut-être pas, mais au moins il est encore assez fortement automatisé et le code de base (où la plupart de la "magie" arrive) a encore de la très bonne couverture..

Je voudrais généralement d'éviter les essais qui implique en s'appuyant sur les éléments de l'INTERFACE utilisateur.Je préfère les tests d'intégration, tests tout à partir de votre base de données de couche supérieure à la couche de la vue (mais pas la mise en page).

Essayez de démarrer une suite de tests avant écrire une ligne de code dans un nouveau projet, car il est plus difficile d'écrire des tests plus tard.

Choisir soigneusement ce que vous test - ne pas bêtement écrire des tests pour tout.C'est parfois une tâche ennuyeuse, afin de ne pas rendre plus difficile.Si vous écrivez trop de tests, vous risquez d'abandonner cette tâche sous le poids de temps à l'entretien.

Essayez de regrouper autant de fonctionnalités que possible dans un seul test.De cette façon, si quelque chose va mal, les erreurs se propagent de toute façon.Par exemple, si vous avez un condensé de génération de la classe de test de la sortie réelle, pas chaque fonction d'assistance.

N'avez pas confiance en vous-même.Supposons que vous pourrez toujours faire des erreurs, et si vous écrivez des tests pour rendre votre vie plus facile, pas plus dur.

Si vous ne vous sentez pas bien à propos de l'écriture de tests, vous êtes probablement faire de mal ;)

Une pratique courante est de déplacer tous les code que vous pouvez sortir de la codebehind et dans un objet que vous pouvez tester dans l'isolement.Ce code est généralement suivie de la MVP ou MVC, design patterns.Si vous effectuez une recherche sur "Rhino Igloo" vous trouverez probablement un lien vers son dépôt Subversion.Ce code est une valeur de l'étude, comme il démontrer l'un des meilleurs MVP implémentations sur des Formulaires Web que j'ai vu.

Votre code sera, en suivant ce modèle, de faire deux choses:

  1. De Transit de toutes les actions de l'utilisateur pour le présentateur.
  2. Rendre les données fournies par le présentateur.

Unité de test de l'animateur doit être trivial.

Mise à jour:Rhino Igloo peut être trouvé ici: https://svn.sourceforge.net/svnroot/rhino-tools/trunk/rhino-igloo/

Il y a eu des tentatives sur obtenir gratuit Microsoft UI Automation (inclus dans .NET Framework 3.0) pour travailler avec des applications web ASP.NET).Une société allemande a appelé Artiso arrive à avoir écrit un billet de blog qui explique comment atteindre ce (lien).

Cependant, leur article sur le blog également des liens à MSDN Webémissions qui explique l'UI Automation Cadre avec les winforms et après j'ai eu un coup d'oeil à cela, j'ai remarqué que vous avez besoin de la AutomationId pour obtenir une référence au respect des contrôles.Cependant, dans les applications web, les contrôles n'ont pas un AutomationId.

J'ai demandé à Thomas Schissler (Artiso) à ce sujet et il m'a expliqué que c'était un inconvénient majeur sur InternetExplorer.Il a fait référence à une technologie ancienne de Microsoft (MSAA) et a été lui-même en espérant que IE8 fera mieux.

Cependant, j'ai été aussi donner Watin de l'essayer et il semble fonctionner assez bien.J'ai même aimé de la Cire, qui permet de mettre en œuvre de simples cas de tests à l'aide de Microsoft Excel des feuilles de calcul.

Ivonna pouvez unité de test de votre point de vue.Je voudrais encore vous recommandons de déplacer la plupart du code à d'autres parties.Cependant, certains code appartient là, comme des références à des contrôles ou de contrôle des gestionnaires d'événements.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top