Maison >développement back-end >tutoriel php >Comment utiliser PHPUnit pour les tests unitaires dans le développement PHP

Comment utiliser PHPUnit pour les tests unitaires dans le développement PHP

WBOY
WBOYoriginal
2023-06-27 10:45:281089parcourir

Avec la large application du langage PHP dans le développement Web, l'utilisation de PHPUnit pour les tests unitaires est devenue une partie importante du développement PHP. Les tests unitaires peuvent nous aider à détecter des problèmes dans le code et à améliorer la maintenabilité et la lisibilité du code. Cet article explique comment utiliser PHPUnit pour les tests unitaires.

  1. Installer PHPUnit

PHPUnit peut être installé via Composer. Entrez la commande suivante dans le terminal :

composer require --dev phpunit/phpunit
  1. Écrire un fichier de test

Nous devons écrire le fichier de test correspondant en fonction du code à tester. Le fichier de test doit utiliser les fonctions d'assertion (assertions) fournies par PHPUnit pour déterminer s'il répond aux résultats attendus. Voici un exemple simple :

class CalculatorTest extends PHPUnitFrameworkTestCase
{
    public function testAdd()
    {
        $calculator = new Calculator();
        $result = $calculator->add(2, 2);
        $this->assertEquals(4, $result);
    }
}

Dans ce fichier de test, nous héritons de la classe PHPUnitFrameworkTestCase, définissons une méthode testAdd pour tester la méthode add dans la classe Calculator et utilisons la fonction assertEquals fournie par PHPUnit pour déterminer si le résultat réel est égal au résultat attendu.

  1. Exécuter le test

Pour exécuter le fichier de test, vous devez exécuter la commande suivante dans le terminal :

vendor/bin/phpunit tests/CalculatorTest.php

Cette commande démarrera PHPUnit et exécutera toutes les méthodes de test dans le fichier tests/CalculatorTest.php. Si tous les tests réussissent, PHPUnit affichera un symbole vert. Si un ou plusieurs tests échouent, PHPUnit affichera un message d'erreur et donnera la raison spécifique de l'échec.

  1. Analyse de couverture

PHPUnit fournit également un outil d'analyse de couverture de code qui peut nous aider à analyser le nombre de lignes du code de test qui ont été exécutées. Ajoutez l'option --coverage-html après la commande pour exécuter le test afin de générer un rapport de couverture.

vendor/bin/phpunit --coverage-html coverage tests/CalculatorTest.php

Cette commande générera un répertoire de couverture dans le répertoire actuel, qui contient un fichier HTML. Ouvrez-le pour voir les résultats de l'analyse de couverture.

  1. Fournisseur de données

Lors de l'écriture de fichiers de test, nous devrons peut-être tester si plusieurs ensembles de données répondent aux résultats attendus. À ce stade, vous pouvez utiliser la fonction de fournisseur de données fournie par PHPUnit pour éviter d'écrire du code de test répété. Voici un exemple d'utilisation d'un fournisseur de données :

class CalculatorTest extends PHPUnitFrameworkTestCase
{
    /**
     * @dataProvider additionProvider
     */
    public function testAdd($a, $b, $expected)
    {
        $calculator = new Calculator();
        $result = $calculator->add($a, $b);
        $this->assertEquals($expected, $result);
    }

    public function additionProvider()
    {
        return [
            [0, 0, 0],
            [0, 1, 1],
            [1, 0, 1],
            [1, 1, 2],
            [-1, 1, 0],
            [PHP_INT_MAX, 1, PHP_INT_MAX + 1],
        ];
    }
}

Dans la classe de test de la calculatrice, nous définissons une méthode additionProvider pour renvoyer un ensemble de données de test, qui comprend deux opérandes et le résultat attendu. Dans la méthode testAdd, nous utilisons l'annotation dataProvider pour identifier le fournisseur de données. À ce stade, PHPUnit exécutera automatiquement plusieurs tests, en utilisant à chaque fois un ensemble de données.

Résumé

L'utilisation de PHPUnit pour les tests unitaires peut nous aider à améliorer la qualité et la maintenabilité de notre code. Cet article présente les fonctions de PHPUnit telles que l'installation, l'écriture de fichiers de test, l'exécution de tests, l'analyse de couverture et les fournisseurs de données. J'espère que ce contenu pourra aider les développeurs PHP avec les tests unitaires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn