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
- -d memory_limit=-1 : permet de ne pas planter à cause d’une limitation de mémoire de PHP
- –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.