Question

Je reconnais que j'ai presque aucune expérience de UnitTesting. Je l'ai fait un essai avec DUnit il y a un certain temps, mais abandonné parce qu'il y avait tant de dépendances entre les classes dans mon application. Il est assez grand (environ 1,5 million de lignes de source) application Delphi et nous sommes une équipe qui le maintenir.

Le test pour se fait maintenant par une personne qui l'utilisent avant libération et bogues rapport. J'ai également mis en place des tests de GUI-en TestComplete 6, mais il échoue souvent en raison des changements dans l'application.

Gras pour Delphi est utilisé comme cadre de persistence contre la base de données. Nous sommes tous d'accord pour dire que UnitTesting est la voie à suivre et nous prévoyons d'écrire une nouvelle application en DotNet avec ECO comme cadre de persistence.

Je ne sais pas où commencer ... UnitTesting Tous les bons livres, URL, bonnes pratiques, etc.?

Était-ce utile?

La solution

Eh bien, le défi dans les tests unitaires ne sont pas le test lui-même, mais écriture de code testable . Si le code a été écrit pas penser à des tests, alors vous aurez probablement une période très difficile.

Quoi qu'il en soit, si vous pouvez factoriser, ne factoriser pour le rendre testable. Ne pas mélanger la création d'objets avec la logique chaque fois que possible (je ne sais pas delphi, mais il pourrait y avoir un cadre d'injection de dépendance pour aider à ce sujet).

Ce blog a beaucoup de bon aperçu sur les tests. Vérifiez ce article par exemple (ma première suggestion est fondée sur elle).

En ce qui concerne une suggestion, essayez de tester les nœuds feuilles de votre code d'abord, les classes qui ne dépendent pas des autres. Ils devraient être plus faciles à tester, car ils ne nécessitent pas se moque.

Autres conseils

Tests unitaires d'écriture pour le code existant nécessite généralement beaucoup de refactoring. Excellent livre qui couvre ce Michael plume de " Travailler efficacement avec Legacy Code "

Une autre suggestion: utiliser un outil de couverture de test unitaire pour indiquer votre progression dans ce travail. Je ne suis pas sûr de ce que les bons outils de couverture pour le code Delphi sont cependant. Je suppose que ce serait une autre question / sujet.

Travailler efficacement avec Legacy Code

L'une des approches les plus populaires est d'écrire les tests unitaires que vous modifiez le code. Tous les nouveaux codes obtient des tests unitaires, et pour tout code que vous vous modifier d'abord écrire son test, vérifier, modifier, revérifier, puis écrire / corriger les tests dont vous avez besoin en raison de vos modifications.

L'un des grands avantages d'avoir une couverture de test bonne unité est en mesure de vérifier que les modifications apportées ne cassent pas autre chose par inadvertance. Cette approche vous permet de le faire, tout en se concentrant vos efforts sur vos besoins immédiats.

L'autre approche que j'ai employé est de développer mes tests unitaires via Co-Ops:)

Lorsque vous travaillez avec le code existant, objetcs simulacres sont utiles vraiment construire des tests unitaires.

Jetez un oeil à cette question concernant Delphi et se moque: Quel est votre favori bibliothèque se moquant Delphi?

Pour .Net UnitTesting lire ceci: " L'art de tests unitaires: avec des exemples dans .NET "

A propos de:
Bonnes pratiques Qu'est-ce que vous avez dit est juste: Parfois, il est difficile d'écrire des tests unitaires en raison de la dépendance entre les classes ... Donc, écrire des tests unitaires juste après ou juste avant la mise en œuvre ;-) des classes. Comme cela, si vous avez des difficultés à écrire les essais, peut-être cela signifie que vous avez un problème de conception!

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