ソフトウェア開発プロセスにおいて、テストは不可欠な部分です。テストは、開発者がコードが正しい方法で実行され、コンポーネントが連携して動作することを確認するのに役立ちます。 PHP 開発プロセスでは、PHPUnit は、開発者がテストを自動化し、テスト結果をカウントするのに役立つ人気のテスト ツールです。
最新バージョンの PHPUnit は公式 Web サイトからダウンロードし、Composer を使用してインストールできます。 PHPUnit をダウンロードしてインストールした後、phpunit.xml ファイルを構成し、PHPUnit の設定を含めることができます。 phpunit.xml の構文は XML タグに似ており、さまざまな設定、パラメーター、デバイスを定義できます。
上記の phpunit.xml ファイルでは、多くのオプションが利用可能で、最も重要なものには次のものがあります。
上記のオプションに加えて、設定できる他の多くのオプションがあります。関連する構成オプションは PHPUnit ドキュメントで見つけることができます。
PHPUnit は、有効な PHP コードをテストできます。テスト計画は、コードを、assert キーワードで始まるテスト マクロにカプセル化します。 PHPUnit は、これらのテスト マクロを実行することによって、コードが期待どおりに実行されるかどうかを自動的に尋ねます。以下は簡単なテストです:
<?php use PHPUnitFrameworkTestCase; class MyTest extends TestCase { public function testTrueIsTrue() { $this->assertTrue(true); } } ?>
この例では、PHPUnit の TestCase クラスを使用してテストを定義し、すべてのテストはデフォルトでそれを継承します。このテストには関数 testTrueIsTrue が 1 つだけあり、assertTrue を使用して実際の式をテストします。結果は、テスト結果を示す「OK」または「FAIL」の文字列を返します。
assertTrue に加えて、PHPUnit は、assertContains などの他の多くのテスト メソッドも提供します。これは、assertTrue と比較しますが、配列値と文字列値を比較できます。
テストを作成した後、PHPUnit を実行してテストを実行できます。コマンドラインで PHPUnit を実行するには、次のコマンドを使用できます:
phpunit [options] [arguments]
ここで、options は PHPUnit のオプションであり、引数は実行するテストを指定します。 。引数が使用されていない場合、PHPUnit は実行するすべてのテストについて現在のディレクトリを検索します。複数のテストがある場合は、ワイルドカードを使用して、実行する特定のテストを指定できます。
PHPUnit は、テストの合格率と失敗率、および個々のテスト ケースの詳細を含むすべてのテストの結果を出力します。出力では、各テストの名前、実行時間、結果を確認できます。出力には、各テストのコードやテストが失敗した理由などの詳細情報も含まれます。
PHPUnit の出力は、開発者がさまざまなテスト ケースがどのように実行されているかをすばやく理解し、あらゆる状況でコードが期待どおりに実行されることを保証できるため、非常に役立ちます。
次に、PHPUnit を使用して Web アプリケーションをテストする例を示します。この例では、ユーザーがテキスト メッセージを保存および取得できるようにする API を提供する単純な Web アプリケーションをテストします。
最初に、ユーザーがメッセージを正常に送信できるかどうかをテストしたいと思います。これには、正しい URL が呼び出されることの確認や、応答に正しい HTTP ステータス コードが含まれていることの確認など、さまざまな側面が含まれます。テスト コードは次のとおりです。
<?php use PHPUnitFrameworkTestCase; class WebAppTest extends TestCase { private $http; protected function setUp(): void { $this->http = new GuzzleHttpClient(['base_uri' => 'http://localhost:8000']); } protected function tearDown(): void { $this->http = null; } public function testPostMessage() { $response = $this->http->request('POST', '/message', [ 'form_params' => [ 'message' => 'Hello!' ] ]); $this->assertEquals(200, $response->getStatusCode()); $this->assertContains('{"success": true}', $response->getBody()); } public function testGetMessage() { $response = $this->http->request('GET', '/message'); $this->assertEquals(200, $response->getStatusCode()); $this->assertContains('{"message": "Hello!"}', $response->getBody()); } } ?>
この例では、まず Web アプリケーションに接続するクライアントをセットアップします。 setUp メソッドとtearDown メソッドをオーバーライドして、各テストがクリーンな環境で開始および終了するようにします。次に、2 つのテストを作成しました。1 つはメッセージを送信する POST リクエストをテストし、もう 1 つはメッセージを取得する GET リクエストをテストしました。どちらの場合も、結果の HTTP ステータス コードと応答本文を比較します。このようにして、メッセージの保存または取得が失敗した場合、失敗したテスト結果を受け取り、アプリケーションが期待どおりに動作することを確認します。
概要
PHPUnit は、PHP 開発で最も広く使用されているテスト フレームワークの 1 つです。開発者がテストをより簡単に実施できるようにする多くの便利なテスト ツールとオプション、およびテスト プロセス中のテスト結果の統計が提供されます。実際には、Git などのバージョン管理ツールを使用する場合、開発者は PHPUnit を使用してテストを作成し、テスト コードをバージョン管理に追加することをお勧めします。これにより、コードの信頼性が確保され、コード エラーが発生した場合にタイムリーな検出と修復が可能になります。
以上がPHP 開発におけるテスト結果の統計に PHPUnit を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。