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.

PestPHP

Prérequis

PHPUnit image
PHPUnit

PHPUnit est le framework standard de tes...

PHP image
PHP

PHP (Hypertext Preprocessor) est un lang...

Prochaine étape

Laravel image
Laravel

Laravel est un framework PHP open source...

À 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 --dev
2php artisan pest:install

Cette commande installe Pest et génère les fichiers de configuration nécessaires.

Exemple de test simple

1<?php
2 
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=authentification

Bonnes 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.