Pourquoi le test PHP n'est pas effrayant, mais utile ?
\n\nImaginez : vous avez écrit un script en PHP, il fonctionne. Vous êtes content. Une semaine plus tard, vous devez ajouter une nouvelle fonctionnalité. Vous modifiez quelques lignes — et soudain, tout se casse. Cela vous parle ? Si oui, il est urgent de découvrir le test PHP. Ce n'est pas de la magie, mais simplement un ensemble d'outils qui sauveront votre projet du chaos.
\n\nDe nombreux développeurs débutants ont peur des tests. Cela semble compliqué, ennuyeux et chronophage. En réalité, le test unitaire PHP est comme une assurance : vous payez un peu maintenant pour ne pas tout perdre plus tard. Dans cet article, nous allons voir par où commencer le test PHP pour un débutant, quels outils utiliser et comment écrire un premier test sans perdre la tête.
\n\nQu'est-ce que le test et pourquoi en a-t-on besoin ?
\n\nLe test de code est le processus qui vérifie que votre programme fait exactement ce que vous attendez de lui. Au lieu d'ouvrir manuellement le navigateur et de cliquer sur des liens à chaque fois, vous écrivez des scripts spéciaux (tests) qui le font pour vous.
\n\nLes principaux avantages :
\n- \n
- Confiance dans le code. Vous savez précisément qu'après des modifications, rien ne se cassera. \n
- Gain de temps. La vérification automatique est plus rapide que la vérification manuelle. \n
- Documentation. Les tests montrent comment votre code doit fonctionner. \n
- Simplification du refactoring. Vous pouvez réécrire le code en toute confiance si les tests passent. \n
L'outil le plus populaire pour le test PHP est PHPUnit. C'est la norme de facto dans le monde PHP. C'est avec lui que nous allons travailler.
\n\nInstallation de PHPUnit : deux méthodes simples
\n\nAvant d'écrire des tests, vous devez installer PHPUnit. Il y a deux façons principales.
\n\nMéthode 1 : Composer (recommandée)
\n\nSi vous utilisez déjà Composer (et vous devriez, c'est le gestionnaire de dépendances pour PHP), c'est simple. Ouvrez un terminal à la racine de votre projet et exécutez :
\n\ncomposer require --dev phpunit/phpunit ^10\n\nLe drapeau --dev signifie que PHPUnit sera installé uniquement pour le développement, et ne sera pas déployé sur le serveur de production.
Méthode 2 : Archive PHAR
\n\nSi Composer n'est pas votre option, vous pouvez télécharger PHPUnit comme un seul fichier :
\n\nwget https://phar.phpunit.de/phpunit.phar\nchmod +x phpunit.phar\nsudo mv phpunit.phar /usr/local/bin/phpunit\n\nAprès cela, la commande phpunit --version devrait afficher la version.
Premier test : écrire et exécuter
\n\nMaintenant, la partie intéressante. Créons une classe simple et écrivons un test pour elle. Supposons que nous ayons une fonction qui additionne deux nombres.
\n\nÉtape 1. Code à tester
\n\nCréez le fichier src/Calculator.php :
<?php\n\nnamespace App;\n\nclass Calculator\n{\n public function add(float $a, float $b): float\n {\n return $a + $b;\n }\n}\n\nÉtape 2. Test pour cette classe
\n\nPHPUnit suit une convention : les tests sont stockés dans le répertoire tests/, et le nom du fichier de test correspond au nom de la classe avec le suffixe Test. Créez tests/CalculatorTest.php :
<?php\n\nnamespace Tests;\n\nuse App\\Calculator;\nuse PHPUnit\\Framework\\TestCase;\n\nclass CalculatorTest extends TestCase\n{\n public function testAdd()\n {\n $calculator = new Calculator();\n $result = $calculator->add(2, 3);\n $this->assertEquals(5, $result);\n }\n}\n\nQue se passe-t-il ici ?
\n- \n
- Nous héritons de
TestCase— la classe de base de PHPUnit. \n - La méthode
testAddest notre test. PHPUnit exécute automatiquement toutes les méthodes commençant partest. \n $this->assertEquals()est une assertion. Elle vérifie