Cara melaksanakan ujian integrasi API RESTful dalam PHP
Dengan pembangunan aplikasi web dan populariti API RESTful, ujian integrasi API telah menjadi semakin penting. Dalam PHP, kita boleh menggunakan beberapa alatan dan teknik untuk melaksanakan ujian integrasi tersebut. Artikel ini akan memperkenalkan cara melaksanakan ujian penyepaduan API RESTful dalam PHP dan menyediakan beberapa kod sampel untuk membantu anda memahami.
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'); } }
Dengan menggunakan klien HTTP Mock, kami boleh mengubah suai dan mengawal tindak balas API pada bila-bila masa untuk memenuhi keperluan ujian kami.
Ringkasan:
Ujian integrasi RESTful API dalam PHP boleh dilakukan dengan menggunakan klien PHPUnit atau Mock HTTP. Tidak kira kaedah yang anda pilih, anda boleh mensimulasikan permintaan HTTP dengan berkesan dan mengesahkan kesahihan respons. Ujian penyepaduan ini akan membantu kami memastikan API kami berfungsi dengan betul dalam pelbagai senario dan menyediakan cara yang boleh dipercayai untuk mengesahkan kefungsian dan prestasi API.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan ujian penyepaduan API RESTful dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!