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.
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数据是否符合预期。
接下来,我们需要实现用户增加功能的具体代码。在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
$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. 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:
rrreeeSelepas 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.
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()
.
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!