単体テストはソフトウェアの最小のコンポーネント (関数、メソッドなど) をチェックします。PHP は PHPUnit フレームワークを通じて単体テストできます。まずPHPUnitをインストールし、次にテストクラス(TestCaseから拡張)を作成し、次に「test」で始まるテストメソッドを記述し、assertEqualsを使用して2つの値が等しいことをアサートします。実際のケースでは、StringUtilsTest.php は StringUtils クラスのメソッド ucfirst() をテストします。モックは、データベースの依存関係のシミュレーションなど、コードを分離するために使用されます。このサンプル コードでは、PHPUnit を使用して HttpRequest::get() メソッドをテストし、モック オブジェクトを通じて依存関係のモック バージョンを作成し、モックの戻り値を設定し、サービス メソッドの呼び出しを検証する方法を示します。
#PHP を使用した単体テスト
単体テストは、ソフトウェアの最小の独立したコンポーネント (ユニット) を検査するソフトウェア テスト手法です。 - 関数、メソッド、またはクラス。PHPUnit のインストール
PHPUnit は、人気のある PHP 単体テスト フレームワークです。これをインストールするには、次の Composer コマンドを実行します。composer require --dev phpunit/phpunit
テスト クラスの作成
各テスト クラスの名前には「Test」接尾辞が付けられ、 PHPUnit から拡張されます。 \Framework\TestCase クラス:
class SomeClassTest extends PHPUnit\Framework\TestCase { // ... }
テスト メソッドの記述
各テスト メソッドは「test」で始まり、その後にテスト対象の関数が続きます。 名前:public function testAddNumbers() { $result = someFunction(1, 2); $this->assertEquals(3, $result); }
assertEquals メソッドは 2 つの値が等しいことをアサートします。
テストを実行する
テストを実行するには、PHPUnit コマンドを使用します:vendor/bin/phpunit
実用的なケース: テスト文字列ツール クラス
文字列の最初の文字を大文字にするucfirst メソッドを提供する
StringUtils というヘルパー クラスについて考えてみましょう。このメソッドをテストする単体テストを作成できます:
StringUtilsTest.php
class StringUtilsTest extends PHPUnit\Framework\TestCase { public function testUcfirst() { $string = 'hello world'; $result = StringUtils::ucfirst($string); $this->assertEquals('Hello world', $result); } }
モックの使用
モックを使用すると、次のことが可能になります。外部依存関係の動作をモックして、単体テストでコードを分離します。たとえば、データベースに依存するクラスをテストしている場合、モックを使用して、実際にクエリを実行せずにデータベースをシミュレートできます。サンプル コード: PHPUnit を使用した getRequest() メソッドのテスト
class HttpServiceTest extends TestCase { public function testGetRequest() { $request = $this->getMockBuilder(HttpRequest::class) ->onlyMethods(['get']) ->getMock(); $request->method('get') ->with('name') ->willReturn('John Doe'); $service = new HttpService($request); $this->assertEquals('John Doe', $service->getRequest('name')); } }
以上がPHP で単体テストを行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。