Tests unitaires en PHP pas à pas…

En tant que développeur PHP, il est intéressant de découvrir ce qui peut vous permettre d’améliorer la qualité logicielle.
Les tests unitaires et les différents outils permettant de les écrires/exécuter font parties intégrante de cette approche qualité.

Tout d’abord, une introduction à la programmation orientée objet en PHP permettra de jauger le niveau et l’axe de la formation.

Un projet concret professionnel

Ensuite, nous partons d’un framework populaire (Symfony, Laravel ou autre) pour implémenter une petite application web.
L’objectif est que les stagiaires soient à l’aise avec le code manipulé. S’ils ont une préférence sur le framework utilisé, je préfère les suivre plutôt que passer du temps à appréhender de nouveaux outils.

Je propose toujours plusieurs types d’applications pour être sur que tout le monde s’y retrouve :

  • Billetterie de concert sans paiement ;
  • Système de gestion de contenu simple ;

Les différents projets vont toujours intégrer un système de gestion de base de données qu’il faudra utiliser pour lire et enregistrer des informations.

Si les stagiaires on une idée particulière, nous pouvons toujours l’explorer tant qu’elle rentre dans le temps imparti.

La méthode

Pour implémenter ce projet nous utilisons le principe du TDD, Test Driven Development. C’est à dire que nous écrivons les tests avant de produire le code « réel » de l’application.

Cette technique, un peu déroutante au début, va vraiment permettre au développeur de s’imerger dans les tests et de structurer son code sous un angle neuf.

Au bout de plusieurs itérations, nous aboutirons à une application fonctionnelle et testée.

Les résultats

Les stagiaires peuvent repartir avec le code écrit comme base de travail pour la suite. En fonction des personnes présentes et de leur niveau, le projet ne sera peut être pas entièrement implémentée à la fin du temps imparti.

Dans tout les cas, je fournirai une clé USB contenant plusieurs exemples de projet simple mais complet qui utilisent les tests unitaires. Cette clé contiendra aussi les ressources (lien web) décritent pendant les sessions.