J’ai récemment changé de crèmerie et lors de mes entretiens d’embauche m’était souvent posée ce genre de questions “Connaissez-vous les tests unitaires?”, “Les utilisez-vous?”, “Qu’en pensez-vous?”.
N’y connaissant pas grand chose puisque ne les ayants jamais utilisés que ce soit pour le dév perso que pour le pro, je ne m’étalais pas sur le sujet. Cela a cependant suscité ma curiosité et j’ai donc essayé d’en savoir un peu plus sur cela afin de les intégrer dans mes prochains développements.
Pour résumer très simplement les tests unitaires, il faut découper son application web en divers petits “morceaux” qui ont chacun une tâche bien précise à réaliser.
Pour chacun de ces modules va être défini un “mode de fonctionnement” normal, c’est à dire que chaque module aura sa fonctionnalité et ne fera et ne pourra rien faire d’autre. Il aura un comportement et des actions définies.
La mise en place des tests unitaires va donc consister à vérifier tout au long de l’exécution de ces modules que tout se passe bien tant sur l’entrée que sur la sortie du module.
Ex: si on était en cuisine, votre module “Hâchoir” n’attendrait pas en entrée des oeufs et ne renverrait rien d’autre en sortie que des aliments hachés.
Cela permet vous l’aurez compris, de mieux pister les bugs, mais aussi lors de l’application d’un correctif d’avoir une routine à suivre (qu’il est possible d’automatiser) pour voir si votre modification sur le module “M” n’a pas impacté d’autre modules.
Mettre en place les tests unitaires dans votre application PHP
J’ai trouvé ce tutoriel en cherchant plus d’informations pour intégrer les tests unitaires à un de mes projets basiques pour me “faire la main”. Tout n’est pas forcément bon à prendre dans cette vidéo, mais elle a le mérite d’être assez complète et adaptée à des non initiés à cette nouvelle façon de faire.
Mon avis sur les tests unitaires
Sans l’avoir encore mis en application sur un projet concret, la puissance de ces tests unitaires permettra sans doute un gain de temps dans le débug d’une appli. Cependant la mise en place de ces tests à droite et à gauche de votre application semblent être très couteuses en temps mais ce temps peut-être rattrapé rapidement dans le cadre de moyen et gros projets.
Je ne le conseillerais donc pas sur des petits projets mais cela peut être intéressant sur des applications ayant une certaine envergure!