Laravel Pest : réaliser des tests d’architectures de votre code

Si vous utilisez Laravel Pest (version 2 requise), vous pouvez effectuer des tests d’architecture.

Les tests d’architecture vous permettent de spécifier des attentes qui vérifient si votre application respecte un ensemble de règles architecturales, vous aidant ainsi à maintenir une base de code propre et durable. Les attentes sont déterminées soit par des espaces de noms relatifs, des espaces de noms entièrement qualifiés ou des noms de fonctions.

https://pestphp.com/docs/arch-testing

Quelques exemples de tests

Ne laissez pas de déclarations de débogage

Ce test permet de verifier dans votre code (app) que vous n’avez pas laissé de dd, dump, var_dump

arch('Do not leave debug statements')
    ->expect(['dd', 'dump', 'var_dump'])
    ->not->toBeUsed();

S’assurer que l’on n’utilise pas de env dans le code

Ce test permet de vérifier dans votre code la non utilisation de env()

arch('Do not use env helper in code')
    ->expect(['env'])
    ->not->toBeUsed();

Vérifier que tous les fichiers utilisent le declare_strict

Avec ce test nous allons vérifier que vos fichiers ont bien la ligne suivante

declare(strict_types=1);
arch('Use string type check')
    ->expect('App')
    ->toUseStrictTypes();

Executer ce test en particulier

Si vous utilisez PHPStorm, vous pouvez lancer les tests directement depuis l’interface de l’IDE. Sauf pour les test « arch », PHPStorm ne semble pas bien reconnaître ce fichier et ne propose donc pas le bouton.
On va donc lancer ce test à la main.

En prenant comme exemple le nom du fichier « ArchTest.php » vous pouvez utiliser cette commande

./vendor/bin/pest -d memory_limit=-1 --filter ArchTest
  1. -d memory_limit=-1 : permet de ne pas planter à cause d’une limitation de mémoire de PHP
  2. –filter : permet de préciser un test en particulier à lancer

Pour aller plus loin

Si vous cherchez d’autres exemples de test d’architecture à faire je vous suggère de consulter ce dépôt github.

Retour en haut