Chapitre 34 : Tests avec PHPUnit
Apprenez à tester automatiquement votre code PHP avec PHPUnit pour des applications plus fiables.
1. Pourquoi écrire des tests ?
Les tests automatisés permettent de s'assurer que votre code fonctionne correctement et reste stable même après des modifications. Ils sont essentiels pour les projets professionnels.
2. Installation de PHPUnit
Installez PHPUnit via Composer :
composer require --dev phpunit/phpunit
Vérifiez l'installation :
vendor/bin/phpunit --version
3. Écrire un test simple
Créez un fichier de test dans /tests :
use PHPUnit\Framework\TestCase;
class CalculatriceTest extends TestCase {
public function testAddition() {
$this->assertEquals(4, 2 + 2);
}
}
Puis lancez les tests :
vendor/bin/phpunit tests
4. Organisation recommandée
- Le code source dans
/src - Les tests dans
/tests - Utiliser le namespace
App\pour le code etTests\pour les tests
5. Exemple avec une classe
Code source de la classe :
// src/Calculatrice.php
namespace App;
class Calculatrice {
public function addition($a, $b) {
return $a + $b;
}
}
Test correspondant :
// tests/CalculatriceTest.php
use PHPUnit\Framework\TestCase;
use App\Calculatrice;
class CalculatriceTest extends TestCase {
public function testAddition() {
$calc = new Calculatrice();
$this->assertEquals(10, $calc->addition(7, 3));
}
}
6. Exercice pratique : Testez votre propre classe
🎯 Objectif : Créez une classe PHP dans /src puis testez-la avec PHPUnit.
Consignes :
- Créez une classe
Convertisseuravec une méthodecelsiusVersFahrenheit() - Créez un test unitaire
ConvertisseurTestpour cette méthode - Exécutez les tests et corrigez les erreurs si nécessaire
Bonus :
- Ajoutez d'autres méthodes à tester (e.g.
metresVersKilometres) - Utilisez
setUp()pour initialiser des objets dans vos tests
7. Résumé
- ✅ PHPUnit est le framework de test le plus utilisé en PHP
- ✅ Il permet de tester des fonctions et des classes automatiquement
- ✅ Les tests facilitent la maintenance et le développement collaboratif
Avec PHPUnit, vous rendez vos projets PHP plus fiables et professionnels.