PestPHP
PestPHP est un framework de tests PHP moderne et minimaliste, conçu pour rendre l’écriture et la lecture des tests plus simples, élégantes et expressives. Il s’intègre parfaitement avec Laravel et d’autres projets PHP, tout en étant compatible avec PHPUnit.
À propos de PestPHP
PestPHP offre une syntaxe claire et concise pour écrire des tests, réduisant le boilerplate et rendant les tests plus lisibles et maintenables. Ses points forts :
- Syntaxe fluide et expressive.
- Intégration native avec Laravel.
- Compatibilité complète avec PHPUnit et les tests existants.
- Support pour les tests unitaires, fonctionnels et d’intégration.
- Possibilité d’utiliser des plugins et extensions pour des fonctionnalités avancées.
PestPHP est particulièrement apprécié pour sa capacité à rendre les tests PHP plus agréables à écrire, ce qui encourage une meilleure couverture et qualité du code.
Installation
Dans un projet Laravel ou PHP existant :
1composer require pestphp/pest --dev2php artisan pest:installCette commande installe Pest et génère les fichiers de configuration nécessaires.
Exemple de test simple
1<?php2 3use function Pest\Faker\faker;4 5it('peut additionner deux nombres', function () {6 $resultat = 2 + 3;7 expect($resultat)->toBe(5);8});it()décrit le comportement attendu.expect()->toBe()vérifie le résultat attendu.
Test avec un modèle Laravel
1use App\Models\User; 2 3it('peut créer un utilisateur', function () { 4 $user = User::factory()->create([ 5 'name' => 'Aud', 6 'email' => 'aud@larafrique.com' 7 ]); 8 9 expect($user->name)->toBe('Aud');10 expect($user->email)->toBe('aud@larafrique.com');11});Test de route Laravel
1it('retourne un status 200 pour la page d\'accueil', function () {2 $response = $this->get('/');3 $response->assertStatus(200);4});Groupes et tags
Pest permet d’organiser les tests avec des groupes :
1it('teste une fonctionnalité spécifique')->group('authentification');On peut ensuite exécuter uniquement un groupe :
1./vendor/bin/pest --group=authentificationBonnes pratiques
- Écrire des tests petits et ciblés pour faciliter le débogage.
- Utiliser des factories et seeders pour générer des données réalistes.
- Organiser les tests par fonctionnalité ou module.
- Combiner Pest avec Laravel Dusk pour des tests de navigation et front-end.
- Profiter des plugins Pest pour des assertions supplémentaires, coverage ou snapshots.
PestPHP est un outil moderne et élégant pour le testing PHP, qui rend l’écriture des tests plus simple et agréable. Il encourage les bonnes pratiques et l’adoption des tests automatisés dans les projets Laravel et PHP, tout en restant compatible avec PHPUnit et l’écosystème existant.