PHP プロジェクト開発において、単体テストは非常に重要なタスクです。 PHPUnit と Mockery は、2 つの非常に人気のある PHP 単体テスト フレームワークです。PHPUnit は広く使用されている単体テスト ツールであり、Mockery は、オブジェクト モックを作成および管理するための統一された簡潔な API の提供に重点を置いたオブジェクト シミュレーション ツールです。
PHPUnit と Mockery を使用すると、開発者は単体テストを迅速かつ効率的に実行して、コード ベースの正確性と安定性を確認できます。この記事では、単体テストを便利に行うためのPHPUnitとMockeryの使い方を紹介します。
composer require --dev phpunit/phpunit mockery/mockery
このコマンドは、単体テストの実行を容易にするために、PHPUnit と Mockery を開発依存関係としてプロジェクトにインストールします。
プロジェクト フォルダーに、「CalculatorTest.php」というファイルを作成し、その中に次のコードを記述します。
use PHPUnitFrameworkTestCase; use MyAppCalculator; class CalculatorTest extends TestCase { public function testAddition() { $calculator = new Calculator(); $result = $calculator->add(2, 2); $this->assertEquals(4, $result); } }
このテスト ケースでは、最初に Calculator オブジェクトをインスタンス化します。次に、add() メソッドを使用して加算操作を実行します。最後に、assertEquals() メソッドを使用して、操作の結果が期待した値であるかどうかを検証します。
ユーザー関連のビジネス ロジックを処理するために、「UserService」という名前のクラスを作成しているとします。このクラスは、ユーザー データ ストアにアクセスするために「UserRepository」と呼ばれる別のクラスに依存します。 Mockery を使用してこの依存関係をシミュレートし、UserService がテストで正常に実行されていることを確認できます。
プロジェクト フォルダーに、「UserServiceTest.php」というファイルを作成し、その中に次のコードを記述します。
use PHPUnitFrameworkTestCase; use MyAppUserService; use MyAppUserRepository; use MockeryAdapterPhpunitMockeryPHPUnitIntegration; class UserServiceTest extends TestCase { use MockeryPHPUnitIntegration; public function testCreateUser() { $repo = Mockery::mock(UserRepository::class); $repo->shouldReceive('create') ->once() ->with(['name' => 'Alice']); $service = new UserService($repo); $service->createUser('Alice'); } }
このテスト ケースでは、「Mockery ::mock()」を使用します。モック UserRepository オブジェクトを作成する関数。次に、「ShouldReceive()」メソッドを通じて、このモック オブジェクトの「create()」メソッドが 1 回呼び出され、「'Alice'」という名前の配列がパラメータとして渡されることが期待されます。最後に、UserService オブジェクトをインスタンス化し、その「createUser()」メソッドを通じてモック オブジェクトの「create()」メソッドを呼び出します。
./vendor/bin/phpunit
このコマンドは、プロジェクト内のすべてのテスト ケースを自動的に検索して実行します。すべてのテストに合格すると、PHPUnit はこれを確認するメッセージを出力します。
特定のテスト ケースのみを実行する場合は、コマンドの後にテスト ファイルまたはテスト メソッドを指定できます。たとえば、「CalculatorTest.php」の testAddition() メソッドを実行するには、次のコマンドを実行します。
./vendor/bin/phpunit tests/CalculatorTest.php --filter testAddition
これらの簡単な手順で、PHP 単体テストに PHPUnit と Mockery を使用できます。正しく完全なテスト スイートは、PHP プロジェクト コード ベースの品質と安定性を確保し、継続的な改善と継続的な開発を促進するのに役立ちます。
以上がPHPUnit と Mockery を単体テストに使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。