logique de tests unitaires

logique de tests unitaires - Algo - Programmation

Marsh Posté le 04-01-2005 à 14:18:00    

Salut, je suis en train d'écrire une application que je dois tester unitairement.
 
Le but de mon application est d'aller chercher des fichiers sur des serveurs ftp distant. Pour joindre ces serveurs ftp, il faut connaitre le numéro de téléphone afin d'établir une connexion RAS.
 
Donc j'ai des modules qui gère la connexion RAS, la connexion FTP, et la récupération des fichiers... Comment tester ça de façon unitaire ?

Reply

Marsh Posté le 04-01-2005 à 14:18:00   

Reply

Marsh Posté le 04-01-2005 à 15:50:01    

Bah tu découpes, jusqu'à ce que tu sois persuadé que chaque fonction a une couverture qui te parrait raisonnable. Certains exigent une couverture des lignes de 100% par exemple. d'autres demandent juste que chaque fonction soit appellée. C'est à toi de voir.  
 
Le seul truc, c'est que ça exige souvent d'arriver à un niveau assez bas. Le découpage en module te permet de simplifier un peu les choses en terme de groupage des tests, mais influe peu sur le découpage en lui-même en théorie. Par contre, vu que tu fais du réseau via RAS, il va te falloir quelques sérieuses classes bouchons pour simuler l'établissement de la connexion (simuler le comportement de Windows dans des cas positifs, comme négatifs).
 
A priori, sépare les unit-tests de tes tests d'intégration. Les tests unitaires, c'est une bonne habitude de faire en sorte qu'ils ne dépendent de rien d'autre d'externe (donc pas de connexion RAS, pas de serveur FTP, etc). On doit pouvoir les exécuter sur n'importe quelle machine, à n'importe quel moment.
 
A l'inverse, les tests d'intégration peuvent exiger un peu plus . L'intégration, c'est ce qui lie les modules ensembles: par exemple, tester que l'établissement d'une session FTP via RAS fonctionne.
 
Donc, en gros, les tests unitaires:  
 - tester que RAS énumère correctement le contenu des connexions dispos, et que le numéro que tu appelles est bien celui auquel tu t'attends. Tester via une classe bouchon que si le modem est éteint, le comportement correct est généré.
 
Tests intégrations:
 - vérifier que toute la connexion se passe bien, et que les messages d'erreurs retournés en cas de problèmes sont les bons, en composant un numéro à la con par exemple.
 - tester la connexion FTP contre un serveur local à la machine de test.
 

Reply

Marsh Posté le 04-01-2005 à 17:16:40    

Merci pour ce messsage clair et qui va droit au but.
En plus ca tombe bien je suis d'accord avec toi :D


Message édité par Benzo29 le 04-01-2005 à 17:16:54
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed