2009-10-28 5 views
0

Quelle est la meilleure façon de tester le service Web à l'aide de NUnit. Je veux qu'il soit automatisé, c'est-à-dire que je ne veux pas avoir un processus séparé pour héberger le service Web pour que le code de test soit consommé.Tests de service Web sans IIS

Répondre

0

Cela dépend de ce que vous voulez tester. Il est possible de faire des tests d'intégration complets et il y a de la valeur (vérification de la sérialisation, par exemple). Une façon simple d'obtenir une bonne couverture de test avec un minimum de travail est la suivante:

  1. Ecrire une ou plusieurs classes pures et simples qui font le travail réel (utilisation TDD si désiré)
  2. Tester ces classes dans l'isolement
  3. Demandez à vos WebMethods de déléguer à ces classes.
+0

Je pense que ce serait la direction que je vais prendre. –

1

Le service Web est simplement une classe plain-old-.net. Vous pouvez l'instancier directement et appeler ses méthodes dans un test unitaire. Cela ne vous permettra pas de tester les aspects spécifiques aux services Web tels que l'authentification au niveau du protocole, mais je dirais qu'il est inutile de se servir d'un serveur Web pour cela.

0

Dépend. Si c'est un asmx, vous pouvez utiliser HostableWebCore sur Vista et supérieur. Si c'est WCF, juste auto-hôte en créant une instance de ServiceHost dans votre processus. Vous pouvez directement instancier le service impl, mais si vous avez des HTTP-isms (HttpContext, accès Request/Reponse, cookies, etc.), vous devrez les simuler.

Questions connexes