2009-08-17 4 views
4

J'ai construit un service web C# .net qui prend un type complexe en paramètre. Existe-t-il un outil de test que je peux utiliser avec mon service Web et transmettre toutes les valeurs au type de paramètre complexe?Existe-t-il un outil de test pour tester un service Web C# .net contenant des types complexes?

Quelques informations d'arrière-plan: J'ai exécuté l'outil xsd.exe sur ma XSD et j'ai créé une classe .cs. Cette classe .cs a l'ensemble de données utilisé comme paramètre complexe. Maintenant, j'ai besoin de tester ma webmethod et de lui transmettre des valeurs comme le ferait le client. J'ai essayé WebService Studio et Storm, mais il semble qu'aucun des produits ne peut gérer des types complexes. Y a-t-il un autre produit qui peut le faire? Ou ai-je écrit ma propre application de test à partir de zéro?

Répondre

2

soapUI va vous aider à le faire.

Cependant, la façon dont je le fais habituellement consiste à écrire des tests unitaires automatisés en utilisant NUNIT ou MSTEST, ajouter une référence de service et ensuite écrire les tests. Cela a l'avantage supplémentaire que vous créez le même type de code client que vos utilisateurs devront faire. Si votre service est difficile à utiliser, vous le découvrirez rapidement.

3

Je voudrais le tester en utilisant Visual Studio avec un formulaire Windows référençant votre service Web. Dans ce formulaire Windows, vous pouvez utiliser NUnit, Fit ou tout ce que vous utilisez normalement pour tester votre application. Si vous exécutez à la fois votre service Web et Windows Form dans le débogage, vous pouvez parcourir le code pour voir les résultats.

C'est la méthode que j'utilise, je n'ai jamais vraiment entendu parler d'un autre moyen au sein des services Web .net avec des types personnalisés.

1

N'est-il pas aussi simple d'obtenir une copie de Visual Studio Express (si vous n'avez pas la version complète) et de créer une application Windows, d'ajouter une référence et de la tester?

Si vous prenez moins de temps, que moi lisant cette question;) (et non, je ne suis pas un lecteur lent)

4

Pour les services ASMX classiques, j'ai utilisé Web Service Studio 2.0 qui traitait tous les types complexes que je lançais. Vous pouvez obtenir la version classique (2.0) de http://archive.msdn.microsoft.com/webservicestudio20/.

Je sais qu'il existe une version mise à jour sur codeplex à laquelle vous avez lié et il semble qu'elle ait été mise à jour pour prendre en charge des types complexes. (Il y a quelque temps, il y avait un outil inutile sur codeplex qui ne pouvait pas faire de types complexes.)

Vous vous demandez quel problème vous avez rencontré avec Web Service Studio? MISE À JOUR: Après avoir relu votre question, il semble que vous utilisiez un DataSet dans votre service. Si oui, alors vous allez avoir des problèmes d'interopérabilité consommant ce service de la plupart des boîtes à outils; ils ne peuvent pas gérer le DataSet car c'est un type "dynamique". Le moyen le plus simple de contourner ce problème est de avoid DataSets.

Si tel est le cas, alors je suis d'accord avec les autres que vous aurez besoin de créer votre propre application .NET qui peut consommer votre service.

+0

Chaque fois que j'ai le type complexe (c.-à-d.dataset) en tant que valeur de paramètre de ma webmethod, lorsque WebServiceStudio compile le Proxy, il renvoie cette erreur ", erreur CS0260: Modificateur partial manquant sur la déclaration de type 'ItemList', une autre déclaration partielle de ce type existe". Si je supprime le paramètre complexe, l'erreur disparaît et webservicestudio fonctionne correctement. – Jon

Questions connexes