Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk menguji antara muka Laravel

Bagaimana untuk menguji antara muka Laravel

PHPz
PHPzasal
2023-04-14 18:01:45764semak imbas

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.

Alat Pengujian

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.

Menulis kes ujian

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.

Hantar permintaan

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);
}

Nilai kandungan respons

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 kandungan respons mengandungi rentetan JSON, kita boleh menggunakan kaedah

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')

Sebagai contoh, senarai pengguna yang dikembalikan oleh ujian

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()

Sebagai contoh, jika kita ingin menguji sama ada pengesahan diperlukan untuk mengakses laluan

, kita boleh menulis seperti ini: /dashboard

public function testDashboardRequiresAuthentication()
{
    $response = $this->get('/dashboard');

    $response->assertRedirect('/login');
}
Ringkasan

Dalam 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn