ホームページ >バックエンド開発 >PHPチュートリアル >PHP と PHPUnit を使用した単体テストとコード カバレッジ
ソフトウェア開発の発展に伴い、単体テストの重要性を認識する開発者が増えています。単体テストは、単一の機能モジュール (「ユニット」とも呼ばれます) の正確性をテストすることによって、コードの正確性と安定性を保証するソフトウェア開発における一般的なテスト方法です。この記事では、PHP と PHPUnit を使用して単体テストとコード カバレッジを実現する方法について説明します。
PHPUnit は、PHP コードをテストするためのオープンソース テスト フレームワークです。単体テスト、機能テスト、統合テストなどの複数のテスト タイプをサポートします。この記事では単体テストに焦点を当てます。
なぜ単体テストとコードカバレッジなのか?
ソフトウェアを開発するとき、私たちは通常、コードを可能な限りテストしようとします。単体テストは、開発プロセス中に継続的にテストしてコードの正確性を確認できる、より効率的なテスト方法です。さらに、次のような利点もあります。
コード カバレッジは、テスト カバレッジを評価する方法です。コードがどの程度テストされているかがわかります。たとえば、テスト カバレッジが 60% の場合、テスト コードがソース コードの 60% をカバーしていることを意味します。コード カバレッジを使用すると、ソフトウェアの品質が高いかどうか、さらに多くのテスト ケースが必要かどうかを測定できます。
PHPUnit で単体テストを開始する
続行する前に、PHPUnit がインストールされていることを確認する必要があります。 Composer経由でインストール可能。プロジェクト ディレクトリにcomposer.json ファイルを作成し、PHPUnit の依存関係を追加します。
{ "require-dev": { "phpunit/phpunit": "^7.0" } }
次のコマンドを実行して PHPUnit をインストールします。
composer install --dev
次に、簡単な単体テストを作成する方法を示します。 。基本的な算術演算を実行する「Calculator」という PHP クラスを作成していると想像してください。そのコードは次のとおりです:
class Calculator { public function add($a, $b) { return $a + $b; } public function subtract($a, $b) { return $a - $b; } }
次に、Calculator クラスをテストする「CalculatorTest」というテスト クラスを作成します:
use PHPUnitFrameworkTestCase; class CalculatorTest extends TestCase { public function testAdd() { $calculator = new Calculator(); $result = $calculator->add(1, 2); $this->assertEquals(3, $result); } public function testSubtract() { $calculator = new Calculator(); $result = $calculator->subtract(2, 1); $this->assertEquals(1, $result); } }
上記のコードでは、基本的なテストの 1 つである PHPUnit を使用しました。提供されるメソッド -assertEquals()。テスト値と期待値を比較し、等しくない場合は例外をスローします。
ここで PHPUnit テストを実行します:
./vendor/bin/phpunit CalculatorTest.php
すべてのテストが成功すると、次の出力が表示されます:
PHPUnit 7.5.1 by Sebastian Bergmann and contributors. .. Time: 42 ms, Memory: 4.00 MB OK (2 tests, 2 assertions)
この例ではちょっとしたトリックが使用されていることに注意してください。 Calculator クラスとそれに対応するテスト クラス CalculatorTest は両方とも同じファイル CalculatorTest.php で定義されています。
PHPUnit の基本的なテスト メソッドを理解する
PHPUnit にはさまざまなテスト メソッドが用意されています。以下に、いくつかの基本メソッドの使用例を示します。 $expected、$actual、$message): 期待値と実際の値が等しいかどうかを比較します。
./vendor/bin/phpunit --coverage-html reports testsこのコマンドは、プロジェクトのテスト ディレクトリ内のすべてのテスト ケースを実行し、実行後に reports ディレクトリにコード カバレッジ レポートを生成します。 この後、ブラウザで HTML レポートを開いて、ソース コードの範囲を確認できます。 概要この記事では、単体テストとコード カバレッジに PHPUnit を使用する方法を紹介しました。単体テストとコード カバレッジを使用すると、プロジェクトの品質と安定性を向上させ、スケーリングとリファクタリングのコストを削減できます。 PHP コードを作成するときは、適切な単体テストを作成することを忘れないでください。優れた単体テストは、コードの正確性を検証し、回帰エラーを防止し、コードの堅牢性を確保するために使用されます。優れたテスト ケースを作成することで、問題を早期に発見し、問題が発生する前に修正できます。
以上がPHP と PHPUnit を使用した単体テストとコード カバレッジの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。