J'ai développé un framework interne conçu avec un tas de modules Perl. Tous ces modules dépendent d'un seul module qui expose certaines fonctionnalités de Win32. Par exemple Les modules A, B, C, D, etc. dépendent tous d'un seul module Z. Tous ces modules vont donc être importés en utilisant "MyFramework :: Z". Tous ces modules A, B, C, etc. peuvent être utilisés individuellement et ne dépendent d'aucun autre module de structure. Maintenant, avec cette conception simple à l'esprit - comment puis-je concevoir mes tests unitaires. Je prévois d'utiliser Test :: More pour faire tous les tests unitaires. Dois-je écrire des tests unitaires individuels pour chaque module? Il y a 25 modules différents qui appartiennent à ce framework. Aucune suggestion?Comment concevoir des tests unitaires pour plusieurs modules Perl dans la même distribution?
Répondre
Les tests unitaires pour Z
devraient couvrir la fonctionnalité Win32.
Les tests unitaires pour A
doivent couvrir la fonctionnalité de A
qui n'est pas couverte par Z
. Répétez pour B
, C
, D
et ainsi de suite.
Si vous trouvez que C
, E
et G
font des choses semblables et vous écrivez des tests unitaires presque identiques, qui est le signal à factoriser - extraire les composants communs jusqu'à un niveau plus élevé (par exemple, le module CEG
) et il suffit de laisser et tester les parties spéciales de C
, E
, et G
dans leurs modules d'origine.
Il y a plusieurs choses que vous pouvez faire:
- commencer à les écrire! ;)
- Un test par module (comme vous l'avez suggéré) et essayez de tester «seulement» le code que vous testez. (Peut paraître évident, mais il est facile de commencer à réfléchir sur les interactions avec d'autres modules)
- Consultez les tests de modules sur CPAN pour des exemples
- Lisez à propos BDD et TDD
En général, je commence par la mise en œuvre teste les fonctionnalités de bas niveau et conserve les tests pour les modules conçus pour être indépendants les uns des autres dans des fichiers séparés.
Si vous pensez qu'il est important de pouvoir tester votre code indépendamment de l'environnement Win32, créez du code de module (spécialement pour les tests) qui émule l'interface du module spécifique à Win32. Une instruction package
avec certaines fonctions réduites peut très bien faire l'affaire, en fonction de ce que fait réellement le module réel.
- 1. Comment créer des modèles de module Perl pour plusieurs modules dans le même espace de noms?
- 2. Tests unitaires avec plusieurs collaborateurs
- 3. Héritage des tests unitaires
- 4. Tests d'acceptation de tests unitaires?
- 5. Tests unitaires pour Boost.Spirit
- 6. Puis-je lancer des tests unitaires Perl sous la tâche Ant jUnit? Comment puis-je gérer les erreurs de tests unitaires perl dans le script de construction ant?
- 7. Classification des tests unitaires
- 8. Sauter des tests dans certains modules dans Maven
- 9. Perl Programmation et distribution
- 10. Comment faire des tests unitaires pour IgnoreRoute dans ASP.NET MVC
- 11. Automatisation des tests unitaires pour asp.net mvc
- 12. Tests unitaires - comment commencer?
- 13. Modification des constantes pour les tests unitaires
- 14. Tests unitaires avec des singletons
- 15. Organisation des tests unitaires dans Visual Studio
- 16. Comment organiser des tests unitaires pour une classe complexe?
- 17. Existe-t-il un cadre pour exécuter des tests unitaires sur les modules Apache C?
- 18. Dispositif "Echo" pour tests unitaires
- 19. Comment faire mes tests unitaires Python pour importer les modules testés s'ils sont dans des dossiers soeurs?
- 20. C++ Tests unitaires, des objets moqueurs
- 21. Tests unitaires des packages DTS
- 22. Inclure des données dans mes tests unitaires
- 23. Les tests unitaires doivent se trouver dans le même paquet?
- 24. Comment effectuer des tests unitaires automatisés dans des packages SSIS?
- 25. tests unitaires maven plugins
- 26. Comment générer javadoc pour les tests unitaires dans netbeans
- 27. Comment écrivez-vous des tests unitaires pour vos servlets java?
- 28. Tests unitaires et tests fonctionnels dans CodeIgniter
- 29. ResourceManager et tests unitaires
- 30. Tests unitaires ProfileBase dans ASP.Net
Merci pour toutes vos suggestions. – John