Web^ID
💬 Contact 💬 Contact

03 08 2022

retour à la liste des articles

Pest avec Laravel

• écrit par [Web^ID]

pest php laravel

Pest est un Framework de Test PHP basé sur PHPUNIT. Il permet une écriture plus littérale et moins verbeux en plus de donner accès à divers fonctionnalités supplémentaires.

 

Je ne vais pas expliquer la syntax car elle est très simple. Au lieu d'écrire des function comme dans PHPUNIT, on utilise une fonction test() ou it()

pest php test it functions

Puis voir ces 2 pages :

 

Installation

Rien de bien compliqué :

 

composer require pestphp/pest --dev --with-all-dependencies
php artisan pest:install

 

Et c'est tout. Maintenant vous pouvez écrire vos tests en PEST.

Helpers

Vous pouvez écrire des functions helpers dans Pest.php.

 

Par exemple :

 

pest php helpers

Que l'on peut ensuite utiliser directement dans nos tests.

 

pest php helpers

Extension IDE

Bien penser à prendre l'extension IDE pour vous faciliter la vie avec l'autocompletion. ❤️

 

(PHPStorm / VSCode)

 

https://pestphp.com/docs/ide-plugins 

 

Faker

En installant l'extension faker,

 

composer require pestphp/pest-plugin-faker --dev

 

on peut avoir accès à faker très simplement, pratique quand on a besoin d'une donnée uniquement comme un email et pas tout un model (Factory).

 

Pest PHP faker

Watch

J'ai été impressionné de voir la fonctionnalité de watch comme dans npm (npm run watch) sur Pest.

 

Pour ça il faut l'installer :

 

brew install fswatch //Sur mac avec Homestead
composer require pestphp/pest-plugin-watch --dev

pest --watch //Pour lancer le watch

 

Et voilà 🎊 On a Pest qui se relance tout seul comme un grand !

 

Datasets

Je ne vais pas vous expliquer comme ça fonctionne car la documentation est très claire, mais il faut savoir qu'il y a tout un système de gestion de dataset dans Pest.

https://pestphp.com/docs/datasets

pest php datasets shared data

On peut faire des Datasets dans des fichiers puis les appeler au besoin (pratique pour vos Services !)

pest php datasets inline

Ou encore faire du inline suivant les situations (pour tester les Rules Laravel par exemple).

Conclusion

Je pense que Pest PHP est vraiment un Framework Test d'avenir. C'est beaucoup plus lisible à l'écriture tant dans le code que dans la console. On peut faire des extensions customs ... donc qui sait quelle suberbe extension on va avoir à l'avenir ? Je recommande grandement de le tester sur un nouveau projet, c'est pas compliqué du tout si on a fait du Phpunit avant.

Vous souhaitez démarrer rapidement ?
Besoin d'accompagnement ?

Vous voulez en savoir plus ou vous souhaitez nous parler de votre projet ?
Nous sommes à votre disposition !