PHPUnit - SimplonReunion/developpeur-web GitHub Wiki

Qu'est ce c'est ?

PHPUnit est un framework PHP de test unitaire. Il permet de tester son code par du code.

Mais pourquoi faire ?

Jusqu'à maintenant comment vous faisiez pour voir si ça fonctionne ? vous simuliez ce que fait l'utilisateur en allant cliquer là où il doit cliquer, en remplissant les champs formulaires qu'il doit remplir et en allant voir dans la base de données si ce qu'il y avait dans le formulaire y est bien présent (par exemple).

Dans des petits projets et quand on est seul ça peut marcher mais que les projets prennent en taille ou que vous $etes en équipe ça devient vite plus compliqué.

Par exemple, vous travaillez dans une équipe qui doit créer un réseau social où les gens peuvent partager leurs commentaires, photos, vidéos, etc. Vous avez développé la fonctionnalité qui permet de publier un commentaire mais maintenant vous devez aussi développer celle qui permet de publier des photos. Une fois celle-ci terminée, comment vous pouvez être sûr que votre nouveau code n'a pas modifié la partie qui s'occupe de la publication de commentaires ? Pour en être sûr, il faut re-tester la publication de commentaires en passant par tous les cas d'utilisations et puis tester la publication des photos en passant par tous les cas aussi. En espérant que vous n'ayez pas oublié des cas. Ou imaginez que ce n'est pas vous qui devez développer la publication de photo mais un collègue. Pour cela, il modifie votre code et ajoute sa partie. Comment savoir si son nouveau code n'a pas fait buguer le votre ?

Pour ne pas se prendre la tête, je vous conseille d'utiliser les test unitaires. Ils permettent de tester les parties de votre code (fonctions, méthodes, classes) pour s'assurer que ces parties retournent bien ce qu'elles doivent retourner.

Une fois les tests créés, lorsque vous rajoutez une nouvelle fonctionnalité, il suffit de les relancer pour voir si ça ne pose pas de problème.

Comment faire ?

Voici une petite vidéo une façon de le faire.

Activité

Créer une classe appelée Exercice. Vous allez tester ses méthodes.

Vous devez écrire les méthodes suivantes de la classe Exercice ainsi que les tests unitaires:

  • la fonction minimum : retourne le plus petit nombre d'après un tableau passé en paramètre
  • la fonction maximum : retourne le plus grand nombre d'après un tableau passé en paramètre
  • la fonction hellow : Affiche le prénom d'une personne précédé par "Hellow M." si c'est un homme et de "Hellow Mlle" si c'est une femme. cette fonction accepte, comme paramètres, le prénom et le sexe de la personne.
  • la fonction whereIsNumber : retourne la position d'un nombre qui se trouve dans un tableau. Le nombre à rechercher et le tableau dans lequel il se trouve sont passés en paramètre.

Chaque méthode doit avoir au minimum un test. Mais rien ne vous empêche d'en écrire plus pour être sûr de prendre en compte tous les cas.

Aller plus loin

Si pour l'activité vous avez écrit les tests unitaires après avoir écrit les méthodes sachez qu'il faut faire l'inverse. En effet écrire le test avant le contenu de la méthode s'appelle faire du TDD.

Ressources

Documentation PHPUnit