Tests unitaires pour les services Web ASP.NET

Il existe quelques différences entre les tests unitaires pour les classes et les tests unitaires pour les services Web ASP.NET. Le plus important reste que votre projet doit contenir un fichier .aspx. Cette rubrique explique comment procéder pour ce faire et décrit également ce qui se produit dans votre projet de test lorsque vous créez un test unitaire pour un service Web ASP.NET.

Pour plus d'informations sur l'exécution de tests de performances sur les sites Web, consultez Création et modification de tests des performances de site Web. Pour plus d'informations sur les tests unitaires pour les classes, consultez Comment : créer et exécuter un test unitaire.

Composants requis

Assurez-vous d'avoir installé les composants IIS suivants :

Compatibilité avec la métabase IIS 6 et la configuration IIS 6

Assurez-vous qu'il existe un fichier .aspx dans votre projet

Pour qu'un test unitaire s'exécute, un fichier .aspx doit figurer dans le projet qui contient votre service Web ASP.NET. Sans fichier .aspx, vous pouvez en principe créer des tests unitaires, mais lorsque vous essayez de les exécuter, vous recevez une erreur indiquant que la requête Web s'est terminée correctement. Toutefois, le test ne s'est en fait pas exécuté.

Pour ajouter un fichier .aspx

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet qui contient votre service Web ASP.NET, cliquez sur Ajouter, puis sur Nouvel élément.

  2. Dans la boîte de dialogue Ajouter un nouvel élément, sous Modèles installés, cliquez sur Web.

  3. Dans la liste de modèles Web, cliquez sur Web Form, puis cliquez sur Ajouter.

Trois nouveaux fichiers sont ajoutés à votre projet : WebForm1.aspx, WebForm1.aspx.cs et WebForm1.aspx.designer.cs. Vous n'êtes pas tenu de modifier ou d'utiliser ces fichiers.

Que se passe-t-il lorsque vous générez un test unitaire pour un service Web ASP.NET

L'illustration suivante présente une méthode de test générée pour un projet de service Web ASP.NET simple. Pour plus d'informations sur les modifications plus générales qui se produisent lorsque vous créez un test unitaire, consultez Anatomie d'un test unitaire.

Méthode de test unitaire ASP.NET

Méthode de test unitaire ASP.NET

  1. Tous les tests unitaires sont générés avec un attribut [TestMethod ()].

  2. L'attribut [Host Type ()] spécifie l'adaptateur hôte dans lequel doit s'exécuter le test unitaire. Vous n'êtes pas tenu de modifier cet attribut.

  3. L'attribut [AspNetDevelopmentServerHost()] spécifie les paramètres à utiliser lorsqu'un serveur de développement ASP.NET est le serveur hôte pour le test. Cet attribut est inclus uniquement si votre service Web ASP.NET s'exécute sur le système de fichiers au lieu d'un processus IIS. Vous n'êtes pas tenu de modifier cet attribut.

  4. L'attribut [UrlToTest()] spécifie l'URL du service Web ASP.NET du test unitaire.

  5. Le reste est le corps de la méthode de test. Vous souhaiterez probablement initialiser les variables et modifier les Assertions dans la méthode de test.

Notes

Pour plus d'informations sur les attributs décrits ici, consultez

Microsoft.VisualStudio.TestTools.UnitTesting.

Si vous utilisez Windows Vista, exécutez Visual Studio en tant qu'administrateur

Si vous exécutez Windows Vista, vous devez exécuter Visual Studio en tant qu'administrateur pour exécuter des tests unitaires ASP.NET. Si vous exécutez Visual Studio en tant qu'utilisateur normal, vous pouvez créer un site Web et créer et exécuter des tests ASP.NET mais ceux-ci échoueront. Pour exécuter Visual Studio en tant qu'administrateur, cliquez avec le bouton droit sur Microsoft Visual Studio 2010 dans le menu Démarrer, puis cliquez sur Exécuter en tant qu'administrateur.

Si vous exécutez IIS en tant qu'utilisateur autre qu'un utilisateur par défaut, assurez-vous que vous activez toutes les autorisations nécessaires

Lorsque vous créez un service Web ASP.NET, vous choisissez un emplacement Système de fichiers , HTTP ou FTP. Si vous choisissez Système de fichiers, le processus de serveur de développement ASP.NET est utilisé. Si vous choisissez HTTP ou FTP, le processus IIS est utilisé.

Si votre service Web ASP.NET s'exécute dans le processus IIS, vous pouvez choisir d'exécuter votre test unitaire en tant qu'utilisateur autre qu'un utilisateur par défaut. Un utilisateur autre qu'un utilisateur par défaut est une identité de processus différente.

Par exemple, si le service Web ASP.NET doit accéder aux ressources de l'ordinateur telles que les dossiers, les fichiers ou une base de données, vous pouvez choisir de l'exécuter afin que ses autorisations sur ces ressources soient exactement suffisantes, et pas plus.

Si le service Web requiert une autorisation que ne possède pas l'utilisateur autre que l'utilisateur par défaut, le test unitaire peut échouer. Par exemple, le processus ASP.NET qui s'exécute en tant qu'utilisateur autre qu'un utilisateur par défaut peut avoir des autorisations limitées, mais être encore capable de générer des fichiers temporaires dans le dossier de %WINDIR%\Temp. Cela échoue si les autorisations par défaut sur %WINDIR%\Temp n'offrent pas au processus un accès suffisant pour générer ces fichiers. Dans ce cas, pour que l'exécution du test unitaire réussisse, vous devez accorder des autorisations supérieures au processus sur le dossier de %WINDIR%\Temp.

Voir aussi

Référence

Microsoft.VisualStudio.TestTools.UnitTesting

Concepts

Comment : créer et exécuter un test unitaire

Anatomie d'un test unitaire