Rumah  >  Artikel  >  rangka kerja php  >  Laravel Test Driven Development (TDD): Meningkatkan Kualiti Kod dan Kebolehselenggaraan

Laravel Test Driven Development (TDD): Meningkatkan Kualiti Kod dan Kebolehselenggaraan

WBOY
WBOYasal
2023-08-27 09:48:27724semak imbas

Laravel Test Driven Development (TDD): Meningkatkan Kualiti Kod dan Kebolehselenggaraan

Laravel Test Driven Development (TDD): Meningkatkan kualiti dan kebolehselenggaraan kod

Pengenalan

Dalam proses pembangunan perisian, memastikan kualiti dan kebolehselenggaraan kod adalah penting. Pembangunan dipacu ujian (TDD) ialah kaedah yang diiktiraf secara meluas yang membimbing kerja pembangunan dengan menulis kod ujian, dengan itu meningkatkan kualiti dan kebolehselenggaraan kod. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Laravel untuk pembangunan dipacu ujian dan menggambarkannya dengan contoh kod.

Apakah itu Test Driven Development (TDD)?

Pembangunan dipacu ujian (TDD) ialah metodologi pembangunan yang menekankan penulisan kod ujian sebelum menulis kod. Idea asas TDD ialah: mula-mula pertimbangkan fungsi atau ciri yang perlu ditulis, kemudian tulis kes ujian untuk mengesahkan fungsi atau ciri ini, kemudian laksanakan kod untuk menjadikannya lulus ujian, dan akhirnya refactor kod untuk menambah baik kebolehselenggaraan. Dengan cara ini, TDD memastikan bahawa kod itu boleh diuji dari awal dan kes ujian digunakan untuk mengesahkan ketepatan kod.

Sokongan ujian rangka kerja Laravel

Rangka kerja Laravel menyediakan sokongan ujian yang kaya, termasuk ujian unit, ujian berfungsi dan ujian penyemak imbas. Antaranya, ujian unit digunakan untuk menguji satu fungsi atau kaedah, ujian fungsi digunakan untuk menguji keseluruhan fungsi atau proses, dan ujian penyemak imbas mensimulasikan tingkah laku pengendalian pengguna dalam penyemak imbas. Melalui alat ujian ini, kami boleh menguji kod secara menyeluruh untuk memastikan kualiti dan kebolehpercayaan kod.

Menggunakan Laravel untuk TDD

Berikut ialah contoh mudah untuk menunjukkan proses menggunakan Laravel untuk TDD. Katakan kita ingin membangunkan sistem pengurusan pengguna, yang merangkumi fungsi seperti menambah, mengubah suai dan memadam pengguna.

  1. Buat kes ujian

Pertama, kita perlu mencipta kes ujian untuk mengesahkan sama ada fungsi penambahan pengguna adalah betul. Dalam Laravel, anda boleh menggunakan arahan Artisan untuk menjana kes ujian. Masukkan arahan berikut dalam terminal:

php artisan make:test UserTest --unit

Selepas melaksanakan arahan di atas, Laravel akan menjana fail kelas ujian bernama UserTest.php dalam direktori tests/Unit. Membuka fail ini, kita boleh melihat contoh kaedah ujian test_example, yang boleh dipadamkan. Kemudian, kami mula menulis kaedah ujian untuk pengguna menambah fungsi: tests/Unit目录下生成一个名为UserTest.php的测试类文件。打开这个文件,我们可以看到一个示例测试方法test_example,可以将其删除。然后,我们开始编写用户增加功能的测试方法:

public function test_can_create_user()
{
    $user = [
        'name' => 'John Doe',
        'email' => 'john@example.com',
        'password' => 'password123'
    ];

    $response = $this->post('/users', $user);

    $response->assertStatus(201)
        ->assertJson([
            'name' => 'John Doe',
            'email' => 'john@example.com'
        ]);
}

在上述代码中,我们首先创建了一个待添加的用户数组$user,然后使用$this->post()方法发送一个POST请求来模拟用户的增加操作。最后,使用$response对象的assertStatus()assertJson()方法来验证接口返回的状态码和返回的JSON数据是否符合预期。

  1. 实现功能代码

接下来,我们需要实现用户增加功能的具体代码。在Laravel中,我们可以使用Artisan命令来生成控制器和模型文件。在终端中输入以下命令:

php artisan make:controller UserController --resource --model=User

执行完上述命令后,Laravel会在app/Http/Controllers目录下生成一个名为UserController.php的控制器文件,以及在app/Models目录下生成一个名为User.php的模型文件。打开UserController.php文件,可以看到一个store()方法,我们需要在这个方法中实现用户的增加逻辑。

public function store(Request $request)
{
    $user = User::create([
        'name' => $request->input('name'),
        'email' => $request->input('email'),
        'password' => Hash::make($request->input('password'))
    ]);

    return response()->json($user, 201);
}

在上述代码中,我们使用create()方法创建了一个新的用户,并使用Hash::make()方法来加密用户密码。最后,通过response()->json()

php artisan test

Dalam kod di atas, kami mula-mula mencipta tatasusunan pengguna untuk ditambahkan $user, dan kemudian menggunakan $this -> Kaedah post() menghantar permintaan POST untuk mensimulasikan operasi penambahan pengguna. Akhir sekali, gunakan kaedah assertStatus() dan assertJson() objek $response untuk mengesahkan sama ada kod status dikembalikan oleh antara muka dan mengembalikan padanan data JSON dijangka.
    1. Laksanakan kod fungsi

    Seterusnya, kita perlu melaksanakan kod khusus untuk pengguna menambah fungsi. Dalam Laravel, kita boleh menggunakan arahan Artisan untuk menjana fail pengawal dan model. Masukkan arahan berikut dalam terminal:

    rrreee

    Selepas melaksanakan arahan di atas, Laravel akan menjana pengawal bernama UserController.php dalam fail direktori app/Http/Controllers, dan jana fail model bernama User.php dalam direktori app/Models. Buka fail UserController.php dan anda boleh melihat kaedah store() Kami perlu melaksanakan logik penambahan pengguna dalam kaedah ini.

    rrreee

    Dalam kod di atas, kami menggunakan kaedah create() untuk mencipta pengguna baharu dan menggunakan kaedah Hash::make() untuk menyulitkan kata laluan pengguna . Akhir sekali, respons JSON yang mengandungi maklumat pengguna dikembalikan melalui fungsi response()->json().

    Jalankan Ujian🎜🎜🎜Selepas menulis kod fungsian, kami boleh menjalankan kes ujian untuk mengesahkan ketepatan fungsi. Masukkan arahan berikut dalam terminal: 🎜rrreee🎜Selepas melaksanakan arahan di atas, Laravel akan menjalankan kes ujian secara automatik dan mengeluarkan keputusan ujian. Sekiranya ujian lulus, bermakna fungsi tambahan pengguna telah dilaksanakan dengan betul jika ujian gagal, bermakna terdapat masalah dengan pelaksanaan fungsi dan perlu dibaiki. 🎜🎜Ringkasan🎜🎜Melalui contoh di atas, kita dapat melihat proses pembangunan dipacu ujian (TDD) menggunakan Laravel. Dengan menulis kes ujian terlebih dahulu untuk membimbing kerja pembangunan, anda boleh memastikan bahawa kod itu boleh diuji dan diselenggara, dan menggunakan kes ujian untuk mengesahkan ketepatan kod. Sokongan ujian yang kaya yang disediakan oleh rangka kerja Laravel membolehkan kami melakukan kerja ujian dengan lebih mudah. Saya harap artikel ini akan membantu anda memahami dan menggunakan kaedah pembangunan TDD Laravel. 🎜

Atas ialah kandungan terperinci Laravel Test Driven Development (TDD): Meningkatkan Kualiti Kod dan Kebolehselenggaraan. 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