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 et Tests\ 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 Convertisseur avec une méthode celsiusVersFahrenheit()
  • Créez un test unitaire ConvertisseurTest pour 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.