web-dev-qa-db-fra.com

Test complet des applications ASP.Net MVC 4

Je me rends compte que c'est un doublon d'environ 20 articles différents, mais aucun d'eux n'est spécifique à MVC4, et aucun que j'ai vu ne répond vraiment à toutes mes questions. Jusqu'à présent, ma première incursion dans le monde du TDD a été pour le moins frustrante. La plupart de ce que j'ai essayé de faire semble incompatible avec MVC 4 ou presque impossible sans utiliser des bibliothèques tierces mal documentées que je ne comprends pas encore très bien.

Ce que je veux pouvoir faire, c'est écrire un test qui testera mes actions de contrôleur, le modèle qu'ils passent et la vue l'action est envoyer le modèle à. Je veux tester si la vue existe, je veux tester si le modèle transmis est le bon type pour la vue, je voudrais un moyen de tester si elle fonctionnera correctement. Je veux également pouvoir tester mes itinéraires. Et tester les filtres d'authentification?

Je veux un moyen de tester unitairement ASP.Net MVC qui laissera très peu au hasard.

Tester la sortie du modèle d'une action semble assez facile, mais tester les vues est presque impossible.

Voici donc ma liste de questions:

  1. ne fois que j'ai testé l'action et obtenu le résultat de l'action, comment puis-je tester pour voir si la vue souhaitée existe?
  2. Comment puis-je tester mes itinéraires?
  3. Comment puis-je tester pour être sûr que mes vues sont traitées correctement?
  4. Quelle est vraiment la "meilleure pratique" pour les tests unitaires approfondis d'ASP.Net MVC 4?
  5. Comment puis-je tester l'authentification des formulaires?
  6. Comment puis-je tester les filtres d'action unitaires?

Je préfère utiliser les projets de test Visual Studio intégrés, mais si je dois utiliser NUnit, je le dois. Je dois juste m'assurer que cela se fait correctement.

Merci d'avance pour vos réponses.

EDIT: Je ne pouvais pas non plus faire fonctionner NUnit avec mon application MVC4 en raison de certaines incompatibilités avec la version de .NET, l'un des assemblys a été compilé.

60
Ben Lesh
  1. S'assurer qu'une vue existe
  2. http://haacked.com/archive/2007/12/17/testing-routes-in-asp.net-mvc.aspx/
  3. http://blog.davidebbo.com/2011/06/unit-test-your-mvc-views-using-razor.html
  4. voir ci-dessous
  5. Comment puis-je tester mon contrôleur ASP.NET MVC unitaire qui utilise FormsAuthentication?
  6. Comment tester les filtres d'action dans ASP.NET MVC?

non. 4: C'est une question difficile. Comment tester quoi que ce soit à fond ? Personnellement, je ne teste pas vraiment les vues, sauf avec les 3 principaux navigateurs et mes deux yeux, car il est difficile de tester un site Web et tous ses composants sans vraiment l'utiliser. Vous avez le tir JavaScript, la stylisation CSS et cela semble différent d'un navigateur à l'autre. Donc, pour moi, cela ressemble à tester la vue qui est complètement une partie mineure de la convivialité globale de votre site. Si vous développez un simple rapport basé sur un tableau de données financières, testez ces données durement. Si votre vue est la base d'un site Ajax sophistiqué, ne testez peut-être pas le HTML autant que l'expérience. Je sais que ce n'est pas une réponse simple et simple, mais le niveau de couverture acceptable implique toujours des compromis.

59
Rob Rodi