Test unitaire des applications ASP.Net MVC 4

Je me rends compte qu’il s’agit d’une copie d’environ 20 articles différents, mais aucun d’entre eux n’est spécifique à MVC4, et aucun de ceux que j’ai vu ne répond vraiment à toutes mes questions. Jusqu’à présent, ma première incursion dans le monde de 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 bien.

Ce que je veux pouvoir faire, c’est écrire des tests qui testeront mes actions de contrôleur, le modèle qu’ils transmettent et la vue à laquelle l’action envoie 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 s’il va traiter correctement. Je veux aussi 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 de chance au hasard.

Tester le résultat du modèle d’une action semble assez facile, mais il est presque impossible de tester les vues.

Alors voici ma liste de questions:

  1. Une fois que je teste l’action et que j’obtiens le résultat de l’action, comment tester pour voir si la vue qu’elle souhaite existe?
  2. Comment 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 THOROUGH d’ASP.Net MVC 4?
  5. Comment puis-je authentifier les formulaires de test?
  6. Comment puis-je tester les filtres d’action?

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

Merci d’avance pour vos réponses.

EDIT: Je ne pouvais pas non plus utiliser NUnit avec mon application MVC4 à cause de certaines incompatibilités avec la version de .NET. Un des assemblages a été compilé.

    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 qui utilise FormsAuthentication?
    6. Comment tester les filtres d’action dans ASP.NET MVC?

    non. 4: C’est une question difficile. Comment peut-on tester quelque chose à fond ? Personnellement, je ne teste pas vraiment les vues, sauf avec les trois principaux navigateurs et mes deux yeux, car il est difficile de tester un site Web et tous ses composants sans l’utiliser. Vous avez le code JavaScript, le style CSS, et il semble différent selon les navigateurs. Donc, pour moi, il semble que tester la vue soit une partie mineure de la convivialité globale de votre site. Si vous développez un simple rapport basé sur des tableaux de données financières, testez-le 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 facile, mais le niveau acceptable de couverture implique toujours des compromis.