Le test d'un service web WCF?
J'ai voulu créer une classe de test pour un service WCF. Je crois que "moqueur" est le terme juste pour cela?
Je ne suis pas vraiment sûr que la façon dont je pense que j'ai à faire, c'est de la bonne façon. J'ai été une URL pour un service WCF, par exemple:
http:://somesite.com/wcf/RealService.svc
Et:
http:://somesite.com/wcf/RealService.svc?wsdl
Ainsi, au lieu d'ajouter le RealService.svc
à mon projet comme Service Reference
j'ai simplement ajouté un nouveau vide WCF Service
à mon projet appelé Service1
.
Je veux utiliser le wsdl.exe
(ou peut-être la svcutil.exe?) outil pour générer une interface à partir de l'url du WSDL: http:://somesite.com/wcf/RealService.svc?wsdl
.
Je puis ouvrez le Service1.cs
fichier et au lieu de laisser est hériter de IService1.cs
je laisse hériter de l'généré interface
.
Alors au lieu d'appeler le service réel dans mon application j'ai simplement appeler mon Service1
classe. Est que la façon dont se moquant d'un service web fonctionne..?
Aussi besoin de savoir comment générer un interface
avec le svcutil outil (j'ai lu que je ne peux pas utiliser wsdl.exe pour un service WCF?). Donc tout les conseils sont plus que les bienvenus aussi!
- codeproject.com/Articles/318260/How-to-Mock-a-WCF-Service
- Je pense que l'article devrait probablement être intitulé "Comment ne PAS se moquer d'un service WCF"
Vous devez vous connecter pour publier un commentaire.
De nombreux domaines, à toucher, va tenter de vous diriger dans la bonne direction:
Si vous voulez tester (c'est à dire passer d'entrée, vérifiez la sortie) de votre service WCF, utilisez Visual Studio, l'outil GUI
WCF Test Client
(article MSDN ici).Si vous voulez vous moquer de votre service WCF (c'est à dire de l'unité de test de votre composant qui consomme le service WCF), l'utilisation d'une infrastructure mocking comme
NMock2
qui permet de se moquer de l'Interface de Service (SI thread ici). Vous pourriez à la main le code d'un simulacre de trop (par la mise en œuvre de l'interface), si vous ne voulez pas utiliser un cadre externe - mais ce n'est plus impliqué.Si vous voulez de l'unité de tester votre service WCF (c'est à dire écrire des tests unitaires pour le service, d'affaires, de données, etc.), utiliser un populaire se moquant de cadre (liées fil ici).
Pour générer un proxy pour votre service WCF, utilisez la svcutil.exe utilitaire de ligne de commande (article MSDN ici) comme vous l'avez deviné. Cet utilitaire est livré avec diverses options (langue, un espace de noms de fichier de config, etc.), alors faites attention à eux.
Espère que cette aide.
Vous pouvez générer le proxy à l'aide de la svcutil.exe (à partir de Visula Studio: Ajouter une Référence de Service...). Cela va générer votre client proxy et un Interface de Service.
Par exemple pour votre service http:://somesite.com/wcf/RealService.svc?wsdl nous aurons:
Vous pouvez créer une maquette de la classe qui implémente l'interface de service (IRealService).
Et dans votre application au lieu de instanciating le béton de service client (RealServiceClient) lorsque vous souhaitez appeler votre service, vous pouvez utiliser une Usine ou un conteneur IOC.
De cette façon, vous pouvez décider d'instance de votre application (ou modules/composants) fonctionne avec: véritable service dans l'exécution, maquette lors de l'essai.
interfaces
) et leur mise en œuvre (classes
) sont générés dans le même fichier (donc la même assemblée), mais rien ne vous empêche de créer unmock
mise en œuvre de votre projet de test.interfaces
au lieu de la mise en œuvre concrète, vous pouvez décider de injecter le réel mise en œuvre des services ou un faux de la classe, par exemple lorsque vous testez ou vous ne souhaitez pas appeler le réel services (lorsque le prototypage par exemple). C'est le point de moqueur.