PHP で RESTful API の統合テストを実装する方法
Web アプリケーションの開発と RESTful API の普及に伴い、API の統合テストがますます行われるようになりました。重要。 PHP では、いくつかのツールとテクニックを使用して、このような統合テストを実装できます。この記事では、PHP で RESTful API の統合テストを実装する方法を紹介し、理解を助けるサンプル コードをいくつか紹介します。
use PHPUnitFrameworkTestCase; class MyApiTest extends TestCase { private $httpClient; protected function setUp(): void { $this->httpClient = new GuzzleHttpClient([ 'base_uri' => 'http://example.com/api/', ]); } public function testGetUsers() { $response = $this->httpClient->get('users'); $this->assertEquals(200, $response->getStatusCode()); $data = json_decode($response->getBody(), true); $this->assertNotEmpty($data); } public function testUpdateUser() { $response = $this->httpClient->put('users/1', [ 'json' => [ 'name' => 'John Doe', 'email' => 'john.doe@example.com', ], ]); $this->assertEquals(200, $response->getStatusCode()); $data = json_decode($response->getBody(), true); $this->assertEquals('John Doe', $data['name']); $this->assertEquals('john.doe@example.com', $data['email']); } }
use PHPUnitFrameworkTestCase; use GuzzleHttpHandlerMockHandler; use GuzzleHttpHandlerStack; use GuzzleHttpClient; class MyApiTest extends TestCase { private $httpClient; protected function setUp(): void { $mockHandler = new MockHandler([ new GuzzleHttpPsr7Response(200, [], json_encode(['name' => 'John Doe'])), new GuzzleHttpPsr7Response(404), new GuzzleHttpExceptionConnectException('Connection error', new GuzzleHttpPsr7Request('GET', 'users')), ]); $handlerStack = HandlerStack::create($mockHandler); $this->httpClient = new Client(['handler' => $handlerStack]); } public function testGetUser() { $response = $this->httpClient->get('users/1'); $this->assertEquals(200, $response->getStatusCode()); $data = json_decode($response->getBody(), true); $this->assertEquals('John Doe', $data['name']); } public function testGetNonExistentUser() { $response = $this->httpClient->get('users/999'); $this->assertEquals(404, $response->getStatusCode()); } public function testConnectionError() { $this->expectException(GuzzleHttpExceptionConnectException::class); $this->httpClient->get('users'); } }
Mock HTTP クライアントを使用すると、テストに合わせていつでも API の応答を変更および制御できます。ニーズ。
概要:
PHP での RESTful API の統合テストは、PHPUnit または Mock HTTP クライアントを使用して実行できます。どの方法を選択しても、HTTP リクエストを効果的にシミュレートし、レスポンスの有効性を検証できます。これらの統合テストは、API がさまざまなシナリオで適切に動作することを確認し、API の機能とパフォーマンスを検証するための信頼できる方法を提供するのに役立ちます。
以上がPHPでRESTful APIの統合テストを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。