Qu'est-ce que PHPUnit et pourquoi en a-t-on besoin ?
\n\nPHPUnit est un framework de test unitaire (unit testing) pour le langage PHP. Il fait partie de la famille xUnit et fournit aux développeurs des outils pour automatiser la vérification du bon fonctionnement des composants individuels d'un programme (classes, méthodes, fonctions).
\n\nPourquoi PHPUnit est-il nécessaire ?
\n- \n
- Détection précoce des erreurs : Les tests sont exécutés après chaque modification du code, permettant d'identifier immédiatement les régressions. \n
- Documentation du code : Des tests bien écrits servent de documentation vivante, montrant comment une méthode particulière doit fonctionner. \n
- Refactorisation sans crainte : Vous pouvez réécrire le code en toute confiance, sachant que les tests ne permettront pas de casser les fonctionnalités existantes. \n
- Support du TDD (Test-Driven Development) : Le développement piloté par les tests est une méthodologie où l'on écrit d'abord le test, puis le code minimal pour le faire passer. \n
- Intégration avec CI/CD : PHPUnit s'intègre facilement dans les pipelines d'intégration continue (GitHub Actions, GitLab CI, Jenkins). \n
PHPUnit prend en charge les mocks (objets simulés), les fixtures (ensembles de données pour les tests), la couverture de code (code coverage) et de nombreuses autres fonctionnalités avancées.
\n\nInstallation de PHPUnit
\n\nPHPUnit s'installe via Composer, le gestionnaire de dépendances pour PHP. Si vous n'avez pas encore Composer, installez-le depuis le site officiel getcomposer.org.
\n\nInstallation globale (recommandée pour CLI)
\ncomposer global require phpunit/phpunit\n\nAprès cela, assurez-vous que le répertoire des paquets globaux de Composer est ajouté au PATH. Vérifiez l'installation :
\nphpunit --version\n\nInstallation locale (dans le projet)
\ncomposer require --dev phpunit/phpunit\n\nEnsuite, PHPUnit sera accessible via vendor/bin/phpunit.
Installation d'une version spécifique
\ncomposer require --dev phpunit/phpunit:^10.0\n\nImportant : La version de PHPUnit doit correspondre à la version de PHP dans votre projet. Par exemple, PHPUnit 10 nécessite PHP 8.1 ou supérieur.
\n\nDémarrage rapide avec un exemple de code
\n\nCréons une classe simple Calculator.php et écrivons des tests pour elle.
Étape 1. Création de la classe à tester
\n<?php\n// src/Calculator.php\n\nclass Calculator\n{\n public function add(int $a, int $b): int\n {\n return $a + $b;\n }\n\n public function subtract(int $a, int $b): int\n {\n return $a - $b;\n }\n\n public function multiply(int $a, int $b): int\n {\n return $a * $b;\n }\n\n public function divide(int $a, int $b): float\n {\n if ($b === 0) {\n throw new \\InvalidArgumentException("Division by zero");\n }\n return $a / $b;\n }\n}\n\nÉtape 2. Création de la classe de test
\n<?php\n// tests/CalculatorTest.php\n\nuse PHPUnit\\Framework\\TestCase;\n\nclass CalculatorTest extends TestCase\n{\n private Calculator $calculator;\n\n protected function setUp(): void\n {\n $this->calculator = new Calculator();\n }\n\n public function testAdd(): void\n {\n $result = $this->calculator->add(2, 3);\n $this->assertEquals(5, $result);\n }\n\n public function testSubtract(): void\n {\n $result = $this->calculator->subtract(10, 4);\n $this->assertEquals(6, $result);\n }\n\n public function testMultiply(): void\n {\n $result = $this->calculator->multiply(3, 4);\n $this->assertEquals(12, $result);\n }\n\n public function testDivide(): void\n {\n $result = $this->calculator->divide(10, 2);\n $this->assertEquals(5.0, $result);\n }\ Aussi dans la bibliothèque
Jetons JWT en C# (.NET) : travailler avec System.IdentityModel.Tokens.Jwt
NestJS pour JavaScript (Node.js) : guide complet avec exemples