Question

J'ai besoin de tester certains composants HTTP dans mon application Delphi. J'utilise Dunit et je veux ajouter une certaine automatisation dans les tests.

Mon code de test doit donc démarrer le serveur HTTP local, le configurer (par exemple, préparer la rupture de connexion en 3 secondes, ou simuler une bande passante basse, ou demander la connexion / mot de passe, etc.), exécuter mes tests unitaires et fermer HTTP serveur.

Y a-t-il des serveurs HTTP disponibles exactement pour Delphi / Dunit?

Je sais que l'équipe de Mozilla a un tel serveur, mais il n'est pas trop facile de l'intégrer dans Dunit.

Était-ce utile?

La solution

J'utilise Indy TIdHttpServer pour servir des choses dans le même processus.

Cette approche me permet de vérifier que les demandes qui arrivent sont correctes, ainsi que la vérification du comportement de l'extrémité du client.

En outre, vous pouvez configurer individuellement le serveur sur une base de tests par test, ce qui rend vos tests unitaires plus faciles à comprendre (ce qui signifie que vous n'avez pas un morceau du «test» ailleurs).

Autres conseils

Vous pouvez utiliser le test unitaire / DUNIT pour construire des tests d'intégration automatique. Disons que vous, les composants HTTP, en tant que client HTTP, effectuez des appels vers un service Web. Vous pouvez créer votre propre service Web simulé, ou simplement utiliser n'importe quel service Web public, comme l'un de ceux de Google ou d'Amazon. Il vous suffit donc de créer un compte Google ou Amazon Developer et consommer certaines fonctions de service de base pour les tests.

Si vous testez SOAP Services, utilisez SOAPUI pour supporter un service "simulé" en fonction de votre WSDL. Vous pouvez le faire renvoyer une variété de réponses (soit séquentiellement, soit utiliser des scripts simples pour faire correspondre les réponses au contenu de la demande.) J'ai fait cela en faisant correspondre "l'ID de demande" (juste un GUID) dans ma demande envoyée à partir de la Test de Dunit, à une réponse dans le SOAPUI. C'est une simple requête XPath pour les faire correspondre.

Vous pouvez le faire renvoyer des erreurs / exceptions "en conserve", et bien sûr, lorsqu'il ne fonctionne pas, vous aurez le cas de test "Personne à la maison".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top