Web 開発で PHP 言語が広く応用されるようになったことで、単体テストに PHPUnit を使用することが PHP 開発の重要な部分になりました。単体テストは、コード内の問題を発見し、コードの保守性と可読性を向上させるのに役立ちます。この記事では、単体テストにPHPUnitを使用する方法を紹介します。
PHPUnit は Composer を通じてインストールできます。ターミナルで次のコマンドを入力します:
composer require --dev phpunit/phpunit
テスト対象のコードに基づいて、対応するテスト ファイルを作成する必要があります。テスト ファイルは、PHPUnit が提供するアサーション関数 (アサーション) を使用して、期待される結果を満たすかどうかを判断する必要があります。以下は簡単な例です:
class CalculatorTest extends PHPUnitFrameworkTestCase { public function testAdd() { $calculator = new Calculator(); $result = $calculator->add(2, 2); $this->assertEquals(4, $result); } }
このテスト ファイルでは、PHPUnitFrameworkTestCase クラスを継承し、Calculator クラスの add メソッドをテストする testAdd メソッドを定義し、PHPUnit によって提供されるassertEquals 関数を使用して、実際の結果が期待される結果と等しいかどうか。
テスト ファイルを実行するには、ターミナルで次のコマンドを実行する必要があります:
vendor/bin/phpunit tests/CalculatorTest.php
このコマンドは PHPUnit を開始しますそして、tests/CalculatorTest.php ファイル内のすべてのテスト メソッドを実行します。すべてのテストに合格すると、PHPUnit は緑色のシンボルを出力します。 1 つ以上のテストが失敗した場合、PHPUnit はエラー メッセージを出力し、失敗の具体的な理由を示します。
PHPUnit は、テスト コードが何行実行されたかを分析するのに役立つコード カバレッジ分析ツールも提供します。コマンドの後に --coverage-html オプションを追加してテストを実行し、カバレッジ レポートを生成します。
vendor/bin/phpunit --coverage-html coverage tests/CalculatorTest.php
このコマンドは、HTML ファイルを含むカバレッジ ディレクトリを現在のディレクトリに生成します。それを開いてカバレッジ分析結果を確認します。
テスト ファイルを作成するとき、複数のデータ セットが期待される結果を満たすかどうかをテストする必要がある場合があります。このとき、PHPUnit が提供するデータ プロバイダー機能を使用すると、テスト コードを繰り返し記述することを避けることができます。以下は、データ プロバイダーの使用例です。
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], ]; } }
電卓テスト クラスで、additionProvider メソッドを定義して、2 つのオペランドと予期される結果を含むテスト データのセットを返します。 testAdd メソッドでは、dataProvider アノテーションを使用してデータプロバイダーを識別しますが、このとき、PHPUnit は毎回一連のデータを使用して複数のテストを自動的に実行します。
概要
単体テストに PHPUnit を使用すると、コードの品質と保守性を向上させることができます。この記事では、PHPUnit のインストール、テスト ファイルの作成、テストの実行、カバレッジ分析、データ プロバイダーなどの機能を紹介します。このコンテンツが PHP 開発者の単体テストに役立つことを願っています。
以上がPHP開発における単体テストにPHPUnitを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。