Tests unitaires et analyse de couverture des fonctions PHP

WBOY
Libérer: 2024-04-28 12:12:01
original
757 Les gens l'ont consulté

Tests unitaires et analyse de couverture des fonctions PHP : utilisez PHPUnit pour les tests unitaires, en écrivant des fichiers .test.php pour isoler et tester des fonctions individuelles. Utilisez la commande phpunit pour exécuter des tests unitaires. Utilisez phpunit --coverage-html pour analyser la couverture et générer un rapport montrant les lignes de code testées et non testées. Installer PHPUnit, écrire des tests unitaires, exécuter les tests, analyser la couverture, démontrer ce processus à l'aide d'une fonction d'ajout personnalisée.

PHP 函数的单元测试和覆盖率分析

Tests unitaires et analyse de couverture des fonctions PHP

L'écriture de code de qualité en PHP nécessite des tests rigoureux pour garantir qu'il fonctionne correctement et obtient les résultats attendus. Les tests unitaires permettent d'isoler et de tester des fonctions ou des méthodes individuelles, tandis que l'analyse de couverture permet de déterminer quelles parties du code ont été testées.

Installer PHPUnit

PHPUnit est un framework de tests unitaires PHP populaire. Pour l'installer, utilisez Composer :

composer require --dev phpunit/phpunit
Copier après la connexion

Écriture de tests unitaires

Les tests unitaires sont écrits avec un fichier d'extension .test.php. Voici un exemple de test de la fonction d'ajout :

<?php

use PHPUnit\Framework\TestCase;

class AddFunctionTest extends TestCase
{
    public function testAddNumbers()
    {
        $result = add(1, 2);
        $this->assertEquals(3, $result);
    }
}
Copier après la connexion

Exécuter des tests unitaires

Exécuter des tests unitaires à l'aide de la commande phpunit :

phpunit
Copier après la connexion
Copier après la connexion

Analyser la couverture

Phpunit fournit une option intégrée pour générer des rapports de couverture :

phpunit --coverage-html
Copier après la connexion
Copier après la connexion

Cela générera un rapport de couverture dans le répertoire html. Il montrera quelles lignes du code ont été testées et quelles lignes n'ont pas été testées. html 目录下生成一个覆盖率报告。它将显示代码中哪些行已被测试,哪些行尚未被测试。

实战案例

为了演示,我们创建一个自定义 add 函数,然后编写一个单元测试来测试它:

functions.php

<?php

function add(int $num1, int $num2): int
{
    return $num1 + $num2;
}
Copier après la connexion

AddFunctionTest.test.php

<?php

use PHPUnit\Framework\TestCase;

class AddFunctionTest extends TestCase
{
    public function testAddNumbers()
    {
        $result = add(1, 2);
        $this->assertEquals(3, $result);
    }

    public function testAddNegativeNumbers()
    {
        $result = add(-1, -2);
        $this->assertEquals(-3, $result);
    }
Copier après la connexion

运行单元测试:

phpunit
Copier après la connexion
Copier après la connexion

生成覆盖率报告:

phpunit --coverage-html
Copier après la connexion
Copier après la connexion

覆盖率报告将显示 add

🎜Cas pratique🎜🎜🎜Pour démontrer, nous créons une fonction d'ajout personnalisée puis écrivons un test unitaire pour la tester : 🎜🎜🎜functions.php🎜🎜rrreee🎜🎜AddFunctionTest.test.php🎜🎜rrreee🎜Exécutez l'unité Test : 🎜rrreee🎜 Générer un rapport de couverture : 🎜rrreee🎜 Le rapport de couverture montrera que la fonction add est entièrement couverte, ce qui signifie que nos tests unitaires couvrent tous ses chemins de code. 🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!