ホームページ > バックエンド開発 > PHPチュートリアル > PHP 関数の単体テストとカバレッジ分析

PHP 関数の単体テストとカバレッジ分析

WBOY
リリース: 2024-04-28 12:12:01
オリジナル
835 人が閲覧しました

PHP 関数の単体テストとカバレッジ分析: 単体テストには PHPUnit を使用し、.test.php ファイルを作成して個々の関数を分離してテストします。 phpunit コマンドを使用して単体テストを実行します。 phpunit --coverage-html を使用してカバレッジを分析し、テスト済みのコード行と未テストのコード行を示すレポートを生成します。 PHPUnit のインストール、単体テストの作成、テストの実行、カバレッジの分析、カスタム追加関数を使用したこのプロセスのデモンストレーション。

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

PHP 関数の単体テストとカバレッジ分析

PHP で高品質のコードを作成するには、機能することを確認するための厳密なテストが必要です。正しく実行され、期待される結果が得られます。単体テストは、個々の関数やメソッドを分離してテストする方法を提供し、カバレッジ分析はコードのどの部分がテストされたかを判断するのに役立ちます。

PHPUnit のインストール

PHPUnit は、人気のある PHP 単体テスト フレームワークです。これをインストールするには、Composer を使用します。

composer require --dev phpunit/phpunit
ログイン後にコピー

単体テストの作成

単体テストは、.test.php 拡張子を持つファイルを使用して作成されます。以下は、add 関数をテストする例です:

<?php

use PHPUnit\Framework\TestCase;

class AddFunctionTest extends TestCase
{
    public function testAddNumbers()
    {
        $result = add(1, 2);
        $this->assertEquals(3, $result);
    }
}
ログイン後にコピー

単体テストの実行

phpunit コマンドを使用して単体テストを実行します:

phpunit
ログイン後にコピー
ログイン後にコピー

カバレッジ率の分析

Phpunit には、カバレッジ レポートを生成するための組み込みオプションが用意されています:

phpunit --coverage-html
ログイン後にコピー
ログイン後にコピー

これにより、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 関数が完全にカバーされていることが示されます。これは、そのすべてのコード パスが単体テストでカバーされていることを意味します。

以上がPHP 関数の単体テストとカバレッジ分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート