Les nouveautés sur Pest 3
Sommaire
- Présentation
- Conférence Laracon US
- Tests de mutation
- Gestion des tâches
- Préréglages d’architecture
- Conclusion
Présentation
Nuno Maduro a été le conférencier d’ouverture lors de la Laracon US 2024, dévoilant de nouvelles fonctionnalités pour la prochaine version de Pest v3.0.
Pest continue de gagner en popularité, avec plus de 18 millions de téléchargements, et est le framework de test par défaut dans Laravel depuis la version 11.
Pest 3 franchit une nouvelle étape importante avec trois fonctionnalités :
- Tests de mutation
- Gestion des tâches
- Presets d’architecture
Conférence lors de la Laracon US
Tests de mutation
On avait déjà parlé des tests de mutation avec Laravel France dans un article dédié à Infection.
Pour faire simple, les tests de mutation vous aideront à trouver les véritables failles dans vos tests. Ils le font en supprimant du code de votre implémentation, en inversant la logique, et en cherchant des failles dans votre code pour essayer de faire échouer vos tests.
Une façon certaine d’augmenter drastiquement la qualité de votre logiciel !
Pour démarrer, installer le plugin :
composer require pestphp/pest-plugin-mutate --dev
Puis lancer vos tests avec la commande suivante :
./vendor/bin/pest --mutate
Gestion des tâches
Ce système de tracking vous permettra de suivre des éléments comme le responsable, le numéro de problème, le numéro de pull request et les notes, directement sur un test !
Ce suivi vous permet de conserver un historique du travail qui sera toujours disponible dans votre test :
it('has a contact page', function () {
// ...
})->todo(assignee: 'laraveljutsu', issue: 666);
it('has a homepage')
->get('/')
->assertOk()
->todo(
assignee:'john',
issue:100,
pr:7,
note:'Needs to check the HTML rendered.'
);
Presets d’architecture
Les presets d’architecture permettent d’utiliser rapidement les mêmes règles d’architecture sur plusieurs projets, en tirant parti de préréglages déjà incorporés tels que des règles pour Laravel, PHP.
Un préréglage strict ou relax est également disponible.
J’avais déjà publié à ce sujet sur Twitter :
🎉 Fresh Arch Presets for @pestphp are here!
— Ludovic Guénet (@LaravelJutsu) August 27, 2024
Not a Laravel fan? Symfony user? Go with the PHP preset!
More into security? The security preset has you covered! 🔐
Laravel enthusiast? Nuno’s got you with the perfect Laravel preset! 🚀
strict() and relaxed() are there too 🛠️ pic.twitter.com/GRupEEdIP7
Ceux-ci créeront plus de cohérence dans votre code en vous empêchant de laisser des fonctions de débogage comme phpinfo(), dd(), etc.
Vous pouvez utiliser ces préréglages avec la méthode arch()->preset()
:
// S'assure que des fonctions PHP comme die(), phpinfo(), etc. ne soient pas présentes
arch()->preset()->php();
// S'assure que des fonctions comme eval(), md5(), etc. ne soient pas présentes
arch()->preset()->security();
// Un Preset qui permet de s'assurer de la cohérence propre à Laravel sur l'organisation du projet
arch()->preset()->laravel();
// S'assurer que le code est strict et final doit être utilisé
arch()->preset()->strict();
// L'inverse
arch()->preset()->relaxed();
Conclusion
En conclusion, la transition vers Pest v3 s’annonce fluide pour les utilisateurs de la version 2, sans risque de rupture de compatibilité.
La mise à jour du package et des dépendances composer se fera sans accroc, ce qui est un atout majeur pour les développeurs, particulièrement ceux ayant une grande suite de tests.
Cela permettra de bénéficier des nouvelles fonctionnalités de Pest 3 sans perturber les projets existants, garantissant une adoption rapide et sereine de cette nouvelle version.
N’hésitez pas à me suivre et à vous abonner à Laravel Jutsu pour plus de contenu !