PHP : Le débogage et l'analyse de code

Créer un test unitaire avec PHPUnit

Testez gratuitement nos 1250 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous allez ajouter un test pour comprendre comment fonctionne PHPUnit. Apprenez aussi à l'utiliser dans un projet PHP.
05:13

Transcription

Écrire un test unitaire avec PHPUnit, c'est très simple, Je vais vous montrer comment ça fonctionne. On l'a installé, donc on a PHPUnit dans vendor/bin et on va le retrouver ici, phpunit, c'est parfait, on va pouvoir donc l'utiliser. Vous allez vous créer à l'intérieur de votre dossier « src » un dossier qui va s'appeler « unit_test » dans lequel vous allez écrire des tests. Chaque test devra commencer par un terme qui est généralement la fonction ou ce que l'on va tester. Pour moi, ça va être le fichier « fonctions.php » qui est là. Je l'ai appelé « Functions » et juste derrière vous allez mettre le terme « Test », c'est important, pensez-y bien. Que va faire mon FunctionsTest ? Ce qu'il va faire, c'est simplement utiliser le TestCase de PHPUnit, faire un « require » sur le fichier fonction car je vais en avoir besoin, et ensuite, à l'intérieur ici, on va faire une finale class FunctionTest qui va étendre TestCase et directement, on va écrire à chaque fois ici de petites fonctions qui vont commencer par le mot « Test » et qui vont définir ici avec une phrase, CamelCase, donc, avec une lettre majuscule à chaque mot, ce que ça va faire. Concrètement, ici, je vais tester que le siteName est bien égal, donc, ça va me retourner le bon siteName. Le pageTitle est bien égal, ça va me retourner le bon pageTitle, donc je vais vérifier ma fonction. Ce qui est intéressant avec les test unitaires c'est qu'ils vont vous permettre de vous poser les bonnes questions. Je m'explique, Dans Fonctions ici, avant on avait des « Echo » à chaque fois. Le problème de Echo c'est que c'est bien, ça fait un affichage dans la page, mais on ne peut pas le réutiliser ailleurs parce que pour le coup, vous n'allez pas récupérer ce qui va sortir de la fonction, mais vous allez tout de suite faire un Echo sur l'écran. Normalement, une fonction ça devrait faire des « Return ». On va ajouter des Return à chaque fois, ce qui va nous permettre de rendre cette classe et ces fonctions-là testables parce qu'on va pouvoir récupérer le contenu et du coup le vérifier. Ça veut dire qu'on va devoir aussi adapter notre Index.php et ajouter ici des Echo. C'est mieux de décider dans ce sens-là, c'est-à-dire que fonction lui, s'occupe de retourner des choses en fonction d'eux et on va ensuite décider de l'utilisation qu'on en fera. Ici, en l'occurrence pour ma page, pour mon « Templating » je vais utiliser des Echo pour avoir un affichage de ce qui sort de la fonction mais je pourrais tout à fait utiliser ça différemment. Ça vous permet aussi de vous poser les bonnes questions sur la constitution de votre code, comment vous allez écrire votre code, qu'est-ce qu'il doit faire réellement. Pour que votre code et fonctions soient testables, Vous devez faire des Return, c'est obligatoire. Une fois que vous avez amélioré ça, vous allez pouvoir vérifier. Le premier test ici vous allez faire des « assert » à chaque fois, vous verrez qu'il y a une documentation qui est assez importante sur PHPUnit. C'est vrai qu'il y a beaucoup de tests d'assertion qui nous permettent de vérifier des choses. Ici, on va simplement vérifier une égalité, que c'est bien cette chaîne de caractères-là qui est retournée par le siteName. Ici, pour le TestPageTitle, j'ai écrasé la variable et GET['page'] avec quelque chose qui m'intéresse pour en vérifier la sortie. Ce qui est bien est que cette fonction fait quelque chose de logique. Elle va nettoyer un petit peu, elle va enlever les caractères spéciaux, elle va remplacer les tirets par des espaces, et donc on a un test qui nous permet de vérifier une fonctionnalité. Si je lui donne une string comme celle-ci, on doit me retourner normalement un titre comme celui-là. Ça vous permet aussi de monter sur le fonctionnement de vos différentes classes et de choisir une sortie propre, et donc de vérifier que le code fait bien ce que vous avez demandé. Si j'avais écrit ce code-là à l'avance et que j'avais écrit cette fonction ensuite, je me serais rendu compte d'une erreur. Je vais nettoyer ma console, et puis, tout simplement, je vais pouvoir utiliser mon PHPUnit. Pour utiliser PHPUnit, on va ouvrir une autre console comme ça, On va se rendre dans le dossier src, et puis, je vais utiliser mon PHPUnit en allant chercher dans vendor, dans bin et PHPUnit. On a pas besoin de faire de Bootstraps particuliers parce que tout simplement, on a déjà fait le require dans notre fonctiontest et donc ça va fonctionner tout seul. Je vais simplement lui demander de tester ce test-là qui se trouve dans unit_test et je vais lui donner le nom du fichier. « FunctionsTest.php ». Je vais le lancer et on va me dire que ça a fonctionné pour le premier, mais ça n'a pas fonctionné pour le deuxième, il y a un qui passe normalement et un autre qui fail... pour le coup ça s'appelle un fail... une failure. Et on voit qu'ici il me donne ce que j'attendais. J'attendais « Ceci est un test » et j'ai eu « Ceci Est Un Test » avec des majuscules à chaque fois. On se rend compte que ce n'est pas ce qu'on voulait. Ce qu'on voulait c'est « Ceci est un test » sans majuscule à chaque mot. Il y a un problème dans notre code. Ça vous permet aussi de patcher le code en fonction du test pour vraiment arriver à quelque chose de final. Ici, on va utiliser une autre fonction qui est « ucfirst » qui nous permet de mettre en upper case la première lettre de la phrase et non pas chaque lettre. On va enregistrer cette partie-là et on va relancer le test et effectivement, cette fois-ci on voit que le test est à 100%. Je vous invite à chaque fois que vous allez écrire du code à créer des fonctiontest qui vous permettent de valider que votre code n'a pas bougé. Ça vous permettra aussi de garantir si votre code évolue dans le temps et bien que ce code reste claire et qu'il fonctionne. C'est un des outils hyper importants... Vraiment importants pour pouvoir garantir votre code et surtout pour vous aider à débugger un code source.

PHP : Le débogage et l'analyse de code

Abordez le débogage et l’optimisation avec PHP. Déterminez les actions à mener pour améliorer une application, utilisez Xdebug, réalisez des tests unitaires et fonctionnels, etc.

1h32 (24 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :23 févr. 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !