ソフトウェア開発の発展に伴い、単体テストの重要性を認識する開発者が増えています。単体テストは、単一の機能モジュール (「ユニット」とも呼ばれます) の正確性をテストすることによって、コードの正確性と安定性を保証するソフトウェア開発における一般的なテスト方法です。この記事では、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
以上がPHP と PHPUnit を使用した単体テストとコード カバレッジの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。