41 votes

Quelle est la meilleure façon d'effectuer des tests unitaires pour les pages Web ASP.NET 2.0 ?

Des suggestions ? J'utilise Visual Studio en C#.

Existe-t-il des outils spécifiques à utiliser ou des méthodes pour aborder cette question ?

Mise à jour :

Désolé, j'aurais dû être un peu plus précis. J'utilise ASP.Net 2.0 et je cherchais plutôt un outil comme jUnit pour Java. J'ai jeté un coup d'oeil à NUnit et NUnitAsp et cela semble très prometteur. Et je ne savais même pas que Visual Studio Pro disposait d'une suite de tests, je vais donc examiner toutes ces options (je viens de commencer à utiliser Visual Studio/Asp.net/C# cet été).

34voto

Brad Tutterow Points 5628

Bon sang, c'est une question assez générale. Je vais faire de mon mieux, mais préparez-vous à me voir rater de très loin.

Hypothèses

  1. Vous utilisez ASP.NET, et non ASP ordinaire.
  2. Vous ne voulez pas vraiment tester vos pages web, mais les logique derrière eux. Les tests unitaires des pages .ASPX sont plutôt pénibles, mais il existe des frameworks pour le faire. NUnitAsp est un.

La première chose à faire est d'organiser (ou de planifier) votre code afin qu'il puisse être testé. Les deux modèles de conception les plus populaires à l'heure actuelle semblent être MVP et MVC. Tous deux séparent le logique de l'application loin de la voir afin de pouvoir tester la logique sans que la vue (pages web) ne vous gêne.

Soit le MVP, soit le MVC sera efficace. MVC a l'avantage de disposer d'un cadre Microsoft presque prêt à partir .

Une fois que vous avez choisi un modèle de framework qui encourage la testabilité, vous devez utiliser un outil de test unitaire. NUnit est un bon point de départ. Visual Studio Professional dispose d'un la suite de tests l'a construit mais NUnit + TestDrive.NET fonctionne également dans l'IDE.

C'est une sorte de coup de fusil d'information. J'espère qu'elles seront utiles. Le Pragmatic Bookshelf a un bon livre couvrant le sujet .

0 votes

Visual Studio 2008 est livré avec MSTest et permet des capacités de test unitaire assez transparentes. En ce qui concerne ASP.NET MVC, lorsque vous créez un nouveau projet, Visual Studio vous demande de créer un projet de test pour celui-ci. J'ai utilisé MVP et un peu de MVC auparavant, ce qui rend les tests beaucoup plus faciles.

2 votes

NUnitAsp n'est plus pris en charge : l'auteur de ce document fait remarquer que "les personnes compétentes utilisent des couches de présentation pour rendre ASP.NET si fin qu'un outil comme NUnitAsp n'est pas utile".

1 votes

Étant donné le choix de cadres de test unitaire de xUnit.net [ [xunit.codeplex.com/]](http://xunit.codeplex.com/]) , NUnit et MSTest, je choisirais xUnit.net, écrit par Jim Newkirk, responsable de codeplex.com chez Microsoft avec Brad Wilson. JN est également répertorié comme le créateur de NUnit 2.0. En tout cas, pour moi, cela veut dire quelque chose quand des employés de haut niveau de Microsoft comme JN et BW choisissent d'ignorer MSTest et NUnit. De même, ASP.NET MVC a été conçu pour la testabilité, voir l'article de Rob Conery intitulé blog.wekeroad.com/blog/ . De plus, j'ai passé la majeure partie de quatre mois à évaluer xUnit.net par rapport à MSTest.

5voto

Ces cadres sont utiles pour intégration mais ils ne peuvent pas fournir de tests unitaires, c'est-à-dire des tests de la vue isolée de la persistance, de la logique commerciale, etc.

Pour unité en testant Asp.Net Webforms, ainsi que MVC, vous pouvez utiliser Ivonna . Par exemple, vous pouvez simuler l'accès à votre base de données et vérifier que les enregistrements simulés s'affichent dans la grille de données. Vous pouvez également simuler le fournisseur d'adhésion et tester le scénario de connexion sans avoir à naviguer vers la page de connexion et à saisir vos informations d'identification, comme dans le cas des tests d'intégration.

4voto

Chris Farmer Points 10681

Il y a un an environ, une série de screencasts sur Polymorphic Podcast présentait une bonne introduction à la mise en œuvre d'un MVP en ASP.NET. Mis en œuvre de cette manière, les tests unitaires se mettent en place beaucoup plus naturellement.

http://polymorphicpodcast.com/shows/mv-patterns/

3voto

Glenn Slaven Points 15742

WatiN est le meilleur que j'ai trouvé. Il s'intègre dans Visual Studio unit testing ou nunit & vous pouvez faire à peu près tout ce dont vous avez besoin dans le navigateur (cliquer sur des liens, soumettre des formulaires, chercher du texte/des images, etc.), et il est écrit en .net donc vous n'avez pas besoin d'avoir ruby installé (comme c'est le cas pour watir, qui n'en est pas moins un outil génial).

0 votes

Je ne pourrais pas être plus d'accord. J'utilise Watir depuis un certain temps, mais j'ai parfois des problèmes avec le framework ruby. C'est beaucoup plus agréable d'utiliser WatiN. Je n'ai pas besoin d'avoir ruby installé et j'ai intellisense.

2 votes

WatiN est génial, et c'est un outil de test d'INTEGRATION. Test unitaire != Test d'intégration.

0 votes

Oui, j'ai supposé que c'était ce qu'ils voulaient dire, j'ai répondu avant qu'ils ne clarifient la question.

2voto

Frog Points 21

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X