PHP 開発におけるテスト駆動開発に PHPUnit を使用する
ソフトウェア業界の急速な発展に伴い、ソフトウェア開発プロセスにおいてテスト駆動開発 (TDD) の役割がますます重要になっています。 PHPUnit は、PHP 開発で最も一般的に使用されるテスト フレームワークの 1 つです。これは、開発者が高品質の単体テストを作成し、それを PHP アプリケーションに統合するのに役立つ便利なツールとメソッドのセットを提供します。この記事では、PHP 開発における TDD に PHPUnit を使用する方法を紹介します。
まず、PHPUnit をインストールする必要があります。 PHP で最も人気のあるパッケージ マネージャーの 1 つである Composer を通じてインストールできます。まず、ホーム ディレクトリにcomposer.json ファイルを作成し、次の内容を追加する必要があります。
{ "require-dev": { "phpunit/phpunit": "^9.5" } }
PHPUnit 9.5 のバージョンはここで指定されており、必要に応じて変更できます。次に、次のコマンドを使用して PHPUnit をインストールします:
$ composer install
インストールが完了したら、次のコマンドを使用して PHPUnit が正常にインストールされたかどうかを確認できます:
$ ./vendor/bin/phpunit --version
<?php use PHPUnitFrameworkTestCase; class MyTest extends TestCase { public function testAddition() { $this->assertEquals(2, 1+1); } }この例では、テスト ケースの名前は MyTest で、テスト メソッド testAddition() が含まれています。テスト メソッドは、assertEquals() アサーション メソッドを使用して、1 1 が 2 に等しいかどうかを検証します。 PHPUnit のアサーション メソッドの詳細については、PHPUnit の公式ドキュメントを参照してください。
$ ./vendor/bin/phpunit MyTest.php上記のコマンドでは、MyTest.php がテスト ケース ファイル名です。テスト ケースが実行されると、PHPUnit はファイルを動的にロードし、テスト メソッドを実行します。テストが成功すると緑色のメッセージが表示され、テストが失敗すると赤色のメッセージが表示されます。
<?php use PHPUnitFrameworkTestCase; class UserRepositoryTest extends TestCase { public function testGetUserById() { $user = new stdClass(); $user->id = 1; $user->name = 'John'; $repository = $this->getMock('UserRepository'); $repository->expects($this->once()) ->method('getUserById') ->with($this->equalTo(1)) ->will($this->returnValue($user)); $result = $repository->getUserById(1); $this->assertSame($user, $result); } }上記のコードでは、getMock() メソッドを使用して UserRepository のモックを作成します。次に、expects() メソッドを使用してシミュレートするメソッドを指定し、with() メソッドを使用して入力パラメーターを指定します。最後に、will() メソッドを使用してシミュレーション操作の結果を指定します。 スタブはモックに似た別のツールで、関数をシミュレートするために使用されます。 PHPUnit では、スタブ化に次のコードを使用できます。
<?php use PHPUnitFrameworkTestCase; class MyTest extends TestCase { public function testMyFunction() { $stub = $this->getMockBuilder('SomeClass') ->getMock(); $stub->method('myFunction') ->willReturn('foo'); $this->assertSame('foo', $stub->myFunction()); } }この例では、まず getMockBuilder() メソッドを使用して SomeClass のモックを作成します。次に、method() メソッドを使用してシミュレーションする必要がある関数を指定し、willReturn() メソッドを使用してシミュレーション操作の結果を指定します。
以上がPHP開発におけるテスト駆動開発にPHPUnitを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。