Test de code PHP : guide pour débutant, du zéro au premier test

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Pourquoi le test PHP n'est pas effrayant, mais utile ?

\n\n

Imaginez : 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\n

De 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\n

Qu'est-ce que le test et pourquoi en a-t-on besoin ?

\n\n

Le 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\n

Les 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
\n\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\n

Installation de PHPUnit : deux méthodes simples

\n\n

Avant d'écrire des tests, vous devez installer PHPUnit. Il y a deux façons principales.

\n\n

Méthode 1 : Composer (recommandée)

\n\n

Si 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\n
composer require --dev phpunit/phpunit ^10
\n\n

Le drapeau --dev signifie que PHPUnit sera installé uniquement pour le développement, et ne sera pas déployé sur le serveur de production.

\n\n

Méthode 2 : Archive PHAR

\n\n

Si Composer n'est pas votre option, vous pouvez télécharger PHPUnit comme un seul fichier :

\n\n
wget https://phar.phpunit.de/phpunit.phar\nchmod +x phpunit.phar\nsudo mv phpunit.phar /usr/local/bin/phpunit
\n\n

Après cela, la commande phpunit --version devrait afficher la version.

\n\n

Premier test : écrire et exécuter

\n\n

Maintenant, 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\n

Créez le fichier src/Calculator.php :

\n\n
<?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\n

PHPUnit 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 :

\n\n
<?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\n

Que se passe-t-il ici ?

\n
    \n
  • Nous héritons de TestCase — la classe de base de PHPUnit.
  • \n
  • La méthode testAdd est notre test. PHPUnit exécute automatiquement toutes les méthodes commençant par test.
  • \n
  • $this->assertEquals() est une assertion. Elle vérifie

Blogs

Book Recommendations