Désolé pour la réponse succincte ci-dessus, les messages de l'iPad à chaque fois que je frappe revenir en éditant un message. DUnit est conçu pour effectuer des tests unitaires, et ce que vous essayez de faire n'est PAS un test unitaire.
Un test n'est pas un test unitaire si:
- Il parle à la base de données
- Il communique à travers le réseau
- Il touche le système de fichiers
- Il ne peut pas fonctionner à la même temps que tous vos autres tests unitaires
- Vous devez faire des choses spéciales dans votre environnement (comme l'édition de fichiers de configuration) pour l'exécuter.
- Il ne peut pas fonctionner en vase clos
Si vous suivez les principes solides (en particulier le principe de responsabilité unique), en utilisant Dunit pour tester votre classe (sans tester la logique liée Midas/DataSnap) devrait être assez simple . Et vraiment, vous ne devriez pas avoir besoin de tester la logique Midas/DataSnap.
Mais il existe des moyens d'effectuer des tests d'intégration et de comportement sur les applications Delphi. Personnellement, je n'utiliserais pas TestComplete car il ne s'intègre pas bien avec n'importe quel serveur CI et les tests sont stockés dans un format binaire propriétaire (ce qui rend problématique la fusion ou le maintien de modifications dans tout système de contrôle source). .
Vous pouvez essayer dSpec, mais je ne suis pas sûr que Jody Dawkins l'entretienne plus.
J'ai utilisé le langage de script BASIC AutoIt directement sur certains projets, et j'ai également utilisé son assembly .NET pour piloter une application Delphi en utilisant NUnit et C# sur un autre. Bien que pas parfaite, la solution NUnit/C# était plus élégante que tout ce que j'avais vu pour effectuer des tests Delphi fonctionnels/comportementaux. Il a fallu un certain effort pour l'installer cependant.
Je ne suis pas d'accord. Unité testant une application Client/Serveur avec une communication Client/Serveur réelle, plusieurs clients et un traitement multiple est obligatoire, à mon humble avis. On l'appelle parfois «stress tests», et ça vaut toujours le coup ... –
@ A.Bouchez, où ai-je dit que vous ne devriez pas faire de tests d'intégration? Je n'ai pas vous devez absolument * faire * des tests d'intégration. Mais les tests unitaires sont différents des tests d'intégration! –
@Craig convenu, cependant DUnit peut être utilisé pour effectuer des tests d'intégration et je n'ai pas encore vu un outil Delphi qui est spécialement conçu pour les tests d'intégration automatisés – mjn