6
votes

Comment se moquer de WCF Web Services avec Rhino Mocks

Comment puis-je tester une classe qui utilise des clients proxy générés par une référence de service Web?

Je souhaite se moquer du client, mais l'interface client générée ne contient pas la méthode de fermeture, qui est nécessaire pour terminer correctement le proxy. Si je n'utilise pas l'interface, mais plutôt une référence concrète, j'ai accès à la méthode de la fermeture mais lâche la capacité de se moquer du proxy.

J'essaie de tester une classe similaire à celle-ci: xxx


0 commentaires

3 Réponses :


1
votes

Je créerais une autre interface qui hérite de votre iloggingServiceclient mais ajoute la méthode de près. Créez ensuite une classe wrapper qui enveloppe l'instance loggingServiceclient. Quelque chose comme: xxx

maintenant Votre adaptateur de service peut utiliser IdisposabloggingServiceclient.


0 commentaires

0
votes

Dans mon expérience, le temps nécessaire pour tester quelque chose comme ça ne valait pas vraiment la peine. Correctement effectué Votre adaptateur devrait surtout faire une réussite depuis son objectif principal est de fournir une couche de test pour le code d'appel. À ce stade, il est un peu comme des propriétés et des vues. Vous n'avez pas besoin de les tester car vous pouvez inspecter visuellement le code et c'est si simple que vous savez que c'est bien.


0 commentaires

0
votes

Ceci est un peu en retard, mais je cherchais juste des moyens de regarder cela. Étant donné que la classe client générée automatiquement est générée comme partielle, vous pouvez l'étendre comme ceci: xxx

maintenant votre loggingserviceclient a uni le close Méthode à partir du ClientBase <> et quel que soit votre contrat de service spécifie et que vous devriez être capable de se moquer du icloseAbloggingServiceclient avec des rhinomocks. Tout ce que vous avez à faire est de vous assurer que vous êtes injecté et testez contre la nouvelle interface au lieu de la classe client concrète.


0 commentaires