Au sein de ce TP, vous avez utilisé la librairie PHPUnit pour réaliser des tests unitaires. Peut-être que vous avez eu des souvenirs de votre utilisation de pyunit lors des tests unitaires en Python.

À travers les fonctionnalités et possibilités offertes par PHPUnit, vous avez découvert et utilisé plusieurs composants vous permettant de fournir des tests unitaires plus complets :

  • Les DataProvider pour définir des cas de test afin de valider plusieurs comportements spécifiques liés aux données ou aux situations.
  • Les Stubs et les Mocks pour faire de la doublure de classe et ainsi vous affranchir de dépendances lourdes ou vous permettre de simuler des implémentations ou des comportements particuliers.

Vous avez pu faire un workflow GitHub Actions pour exécuter vos tests lors d’une PR et donc empêcher l’acceptation de la PR tant que les tests ne passent pas.

Et pour aller plus loin, vous avez découvert la “Réflexion” et ses subtilités avancées qui peuvent être utilisées pour des tests unitaires afin de vérifier que le code respecte certaines règles.

N’oubliez pas : tous les tests ne se valent pas ; il n’est pas nécessaire d’écrire du test pour écrire du test, si l’intérêt derrière le test est nul, pourquoi le faire ?