Description générale
Le livre de Vladimir Khorikov, "Les principes des tests unitaires", est consacré à une approche systématique et réfléchie des tests automatisés de code. L'auteur examine les tests unitaires non pas comme un ensemble d'outils ou de frameworks, mais comme une discipline d'ingénierie étroitement liée à l'architecture de l'application, à la qualité du code et à la maintenabilité du système à long terme.
Le livre détaille les principes fondamentaux des bons tests : l'isolement, la fiabilité, la lisibilité et leur valeur pour le projet. Une attention particulière est accordée à la distinction entre les tests unitaires et les tests d'intégration, ainsi qu'à la limite entre les deux dans la pratique. L'auteur explique systématiquement pourquoi la volonté de tester "tout ce qui bouge" mène souvent à des tests fragiles et inutiles.
Une partie importante du livre est consacrée aux aspects architecturaux des tests. Il montre comment la structure du code, les dépendances et le style de conception impactent directement la complexité de l'écriture et de la maintenance des tests. Diverses approches pour l'isolement des dépendances, les types de doubles de test et leurs domaines d'application sont examinées.
Le livre analyse également les métriques de test, telles que la couverture de code, et explique pourquoi des pourcentages de couverture élevés ne garantissent pas à eux seuls la qualité. L'auteur se concentre sur le refactoring des tests, sur leur maintien à jour et sur la prévention de la dégradation de la base de tests au fil du temps.
Le livre s'adresse aux développeurs qui souhaitent approfondir leur compréhension du rôle des tests dans le processus de développement et apprendre à écrire des tests qui profitent réellement au projet, plutôt que de créer une charge supplémentaire.
Avis
Un bon livre sur les tests de code. Outre les tests unitaires, il accorde également beaucoup d'attention aux tests d'intégration. Les écoles de test de Londres et l'école classique sont analysées en détail. Il explique la différence entre la couverture de code et la couverture de branches, décrit les exigences que les tests doivent remplir, quels types de doubles de test existent et en quoi les mocks diffèrent des stubs, les différents styles de tests unitaires, comment refactoriser correctement les tests, comment l'architecture du projet affecte les tests, et bien plus encore. Donc, si vous pensez bien connaître les tests, je suis sûr que vous trouverez beaucoup de choses intéressantes dans ce livre.