Rumah > Artikel > rangka kerja php > Bagaimana untuk menguji antara muka Laravel
Selepas menggunakan rangka kerja Laravel untuk menulis antara muka, apabila menerima projek, kami memerlukan beberapa kemahiran menguji untuk menguji ketepatan kod antara muka. Di bawah, kami akan memperkenalkan cara menguji antara muka Laravel.
Dalam Laravel, kita boleh menggunakan PHPUnit untuk ujian antara muka. PHPUnit ialah alat ujian unit PHP yang berkuasa yang menyokong ujian automatik, ujian API dan juga ujian hujung ke hujung. Dalam Laravel 5.5 dan ke atas, PHPUnit telah menjadi alat ujian terbina dalam rangka kerja, jadi tiada pemasangan tambahan diperlukan.
Dalam Laravel, kita boleh menggunakan perintah php artisan make:test
untuk menjana fail kes ujian. Perintah ini akan menjana kelas ujian dalam direktori tests/Feature
dan mewarisi kelas ini daripada kelas PHPUnitFrameworkTestCase
. Setiap kaedah kelas ujian akan dijalankan secara automatik sebagai kes ujian. Contohnya:
<?php namespace Tests\Feature; use Tests\TestCase; use Illuminate\Foundation\Testing\RefreshDatabase; class ExampleTest extends TestCase { /** * A basic test example. * * @return void */ public function testBasicTest() { $response = $this->get('/'); $response->assertStatus(200); } }
Dalam kod sampel ini, kami mencipta kaedah testBasicTest
dan menggunakan kaedah $this->get()
untuk menghantar permintaan HTTP GET, dan kemudian menggunakan kaedah $response->assertStatus()
untuk menentukan respons status Sama ada kod itu 200.
Dalam Laravel, kita boleh menggunakan kaedah seperti $this->get()
, $this->post()
, $this->put()
, $this->patch()
dan $this->delete()
untuk menghantar permintaan HTTP. Kaedah ini secara automatik akan melaksanakan kaedah laluan dan pengawal dan mengembalikan objek tindak balas HTTP. Contohnya, untuk menghantar permintaan GET ke laluan /users
, anda boleh menulis ini dalam kelas ujian:
public function testGetUsers() { $response = $this->get('/users'); $response->assertStatus(200); }
Dalam Laravel, kita boleh menggunakan $response->assertJson()
, , $response->assertStatus()
dan $response->assertSeeText()
digunakan untuk menegaskan kandungan respons. $response->assertDontSeeText()
Jika kita ingin menentukan sama ada kod status respons ialah 200, kita boleh menggunakan kaedah $response->assertJson()
. Jika kita ingin menentukan sama ada kandungan respons mengandungi teks tertentu, kita boleh menggunakan kaedah $response->assertStatus(200)
. Jika kita ingin menentukan sama ada kandungan respons tidak mengandungi teks tertentu, kita boleh menggunakan kaedah $response->assertSeeText('Hello World')
. $response->assertDontSeeText('Hello World')
laluan haruslah tatasusunan, kita boleh menulis seperti ini: /users
public function testGetUsers() { $response = $this->get('/users'); $response->assertJson([ 'users' => [], ]); }Simulasikan pengesahan dan kebenaran Dalam Laravel, Kami boleh menggunakan Fasad
Laravel sendiri untuk mensimulasikan pengesahan dan kebenaran. Sebagai contoh, kita boleh menggunakan kaedah Auth::
untuk mensimulasikan log masuk pengguna, atau kita boleh menggunakan kaedah Auth::login()
untuk mensimulasikan pengesahan sama ada pengguna mempunyai kebenaran tertentu, dsb. Auth::shouldReceive()
, kita boleh menulis seperti ini: /dashboard
public function testDashboardRequiresAuthentication() { $response = $this->get('/dashboard'); $response->assertRedirect('/login'); }RingkasanDalam Laravel , kita boleh menggunakan PHPUnit untuk Menjalankan ujian antara muka, menggunakan kaedah seperti
, $this->get()
, $this->post()
, $this->put()
dan $this->patch()
untuk menghantar permintaan HTTP, menggunakan kaedah seperti $this->delete()
, $response->assertJson()
, $response->assertStatus()
dan $response->assertSeeText()
untuk Membuat penegasan tentang kandungan respons. Anda juga boleh menggunakan Fasad $response->assertDontSeeText()
Laravel sendiri untuk mensimulasikan pengesahan dan kebenaran. Auth::
Atas ialah kandungan terperinci Bagaimana untuk menguji antara muka Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!