Retour au blog
Les nouveautés sur Pest 3

Les nouveautés sur Pest 3

Sommaire

  1. Présentation
  2. Conférence Laracon US
  3. Tests de mutation
  4. Gestion des tâches
  5. Préréglages d’architecture
  6. 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 :

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 !