PHPUnit
PHPUnit est le framework standard de tests unitaires pour PHP. Il permet de vérifier que chaque partie d’un programme PHP fonctionne correctement, en automatisant l’exécution des tests et en fournissant des rapports détaillés.
À propos de PHPUnit
PHPUnit permet de créer des tests automatisés pour :
- Tester des fonctions et méthodes individuellement (tests unitaires).
- Vérifier des classes et modules complets (tests d’intégration).
- Assurer la conformité des comportements attendus de l’application.
Avec PHPUnit, il est possible de détecter rapidement les régressions, de sécuriser les mises à jour et de faciliter la collaboration entre développeurs. Il est souvent utilisé avec Laravel, mais fonctionne avec tout projet PHP.
Installation
Pour installer PHPUnit globalement avec Composer :
1composer global require phpunit/phpunitVérification de l’installation :
1phpunit --versionDans un projet Laravel, PHPUnit est déjà inclus par défaut dans les dépendances de développement.
Exemple de test simple
1<?php 2use PHPUnit\Framework\TestCase; 3 4class MathTest extends TestCase 5{ 6 public function testAddition() 7 { 8 $this->assertEquals(5, 2 + 3); 9 }10}TestCaseest la classe de base pour tous les tests.assertEquals()vérifie que le résultat obtenu correspond au résultat attendu.
Test d’une classe PHP
1<?php 2class Calculatrice 3{ 4 public function addition($a, $b) 5 { 6 return $a + $b; 7 } 8} 9 10use PHPUnit\Framework\TestCase;11 12class CalculatriceTest extends TestCase13{14 public function testAddition()15 {16 $calc = new Calculatrice();17 $this->assertEquals(5, $calc->addition(2, 3));18 }19}Test avec Laravel
Laravel intègre PHPUnit et propose des classes de test :
1<?php 2 3namespace Tests\Feature; 4 5use Tests\TestCase; 6 7class HomePageTest extends TestCase 8{ 9 public function testAccueilRetourne200()10 {11 $response = $this->get('/');12 $response->assertStatus(200);13 }14}Feature: tests fonctionnels pour les routes, contrôleurs et intégrations.Unit: tests unitaires pour les classes et méthodes individuelles.
Assertions courantes
$this->assertTrue($condition);: vérifie que la condition est vraie.$this->assertFalse($condition);: vérifie que la condition est fausse.$this->assertEquals($attendu, $reel);: vérifie que deux valeurs sont égales.$this->assertNull($variable);: vérifie que la variable est nulle.$this->assertInstanceOf(Class::class, $objet);: vérifie le type d’un objet.
Bonnes pratiques
- Écrire des tests petits et ciblés, testant une seule fonctionnalité à la fois.
- Organiser les tests dans des dossiers Unit et Feature.
- Utiliser des factories et seeders pour générer des données de test réalistes.
- Exécuter régulièrement les tests pour détecter les régressions.
- Compléter PHPUnit avec coverage reports pour analyser la couverture du code.
PHPUnit est un outil incontournable pour le développement PHP professionnel. Il garantit la qualité et la fiabilité du code, facilite le maintien de projets complexes et s’intègre parfaitement avec Laravel et l’écosystème PHP moderne.