Maison >développement back-end >tutoriel php >Tests unitaires et analyse de couverture des fonctions PHP

Tests unitaires et analyse de couverture des fonctions PHP

WBOY
WBOYoriginal
2024-04-28 12:12:01829parcourir

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

É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);
    }
}

Exécuter des tests unitaires

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

phpunit

Analyser la couverture

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

phpunit --coverage-html

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;
}

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);
    }

运行单元测试:

phpunit

生成覆盖率报告:

phpunit --coverage-html

覆盖率报告将显示 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!

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