Les tests unitaires forment un concept puissant qui, s’il est
implémenté correctement, peut à la fois réduire les coûts de
maintenance et augmenter la flexibilité d’un projet à long terme. Il
faut aussi comprendre que les tests unitaires ne sont pas une panacée,
une baguette magique ou une balle d’argent. Ecrire de bons cas de test
est difficile et les tenir à jour demande de la discipline (surtout
quand les clients réclament à hauts cris la correction de bogues
critiques). Les tests unitaires ne sont pas destinés à remplacer
d’autres formes de tests comme les tests fonctionnels, les tests
d’intégration et les tests utilisateurs. Mais ils sont réalisables et
ils marchent et une fois que vous les aurez vu marcher, vous vous
demanderez comment vous avez pu vous en passer.
Ce chapitre a couvert un large sujet et une bonne partie n’était
pas spécifique à Python. Il y a des
frameworks de tests unitaires pour de
nombreux langages qui tous exigent que vous compreniez les mêmes
concepts de base :
En plus, vous devez vous sentir à l’aise pour des choses plus
spécifiques à Python :
- Dériver
unittest.TestCase et écrire des méthodes
pour des cas de test individuels
- Utiliser assertEqual
pour vérifier qu’une fonction retourne une valeur identifiée
- Utiliser assertRaises
pour vérifier qu’une fonction déclenche une exception
identifiée
- Appeler unittest.main()
dans votre clause if __name__ pour exécuter
tous vos cas de tests en une fois
- Exécuter les tests unitaires en mode détaillé ou normal