Laravel ialah rangka kerja pembangunan web PHP yang popular, terkenal dengan reka bentuk API yang ringkas dan mudah digunakan, perpustakaan fungsi yang kaya dan ekosistem yang berkuasa. Apabila menggunakan Laravel untuk pembangunan projek, ujian adalah pautan yang sangat penting. Laravel menyediakan pelbagai alat dan teknologi ujian, yang mana kilang model merupakan bahagian penting. Artikel ini akan memperkenalkan cara menggunakan kilang model dalam projek Laravel untuk menguji pangkalan data.
1. Peranan kilang model
Dalam Laravel, kilang model ialah alat yang digunakan untuk menjana data ujian. Kami biasanya menggunakan kilang model untuk mencipta contoh model dan kemudian menyimpannya dalam pangkalan data. Contoh model ini boleh digunakan untuk menguji sifat model, perhubungan, dsb. Fungsi utama kilang model adalah seperti berikut:
1 Menjana data ujian dengan mudah: Kilang model boleh menjana sejumlah besar data ujian dalam beberapa baris kod, yang membolehkan kami membina kes ujian dengan cepat. .
2. Kurangkan lebihan kod: Menulis data ujian secara manual dalam setiap ujian akan meningkatkan lebihan kod, manakala menggunakan kilang model boleh mengurangkan lebihan ini.
3. Meningkatkan kebolehpercayaan ujian: Menggunakan model kilang boleh memastikan kebolehulangan kes ujian, dengan itu meningkatkan kebolehpercayaan ujian.
2. Gunakan kilang model untuk menguji pangkalan data
Seterusnya kami akan menggunakan contoh praktikal untuk menunjukkan cara menggunakan kilang model untuk menguji pangkalan data.
Andaikan kami mempunyai model pengguna, yang merangkumi dua atribut: nama dan e-mel. Kita perlu menulis kes ujian untuk menguji kefungsian penciptaan model pengguna.
1. Cipta fail ujian
Dalam projek Laravel, kita boleh menggunakan perintah artisan untuk menjana fail ujian. Buka terminal, masukkan direktori akar projek dan jalankan arahan berikut:
php artisan make:test UserModelTest
Perintah ini akan menjana fail ujian bernama UserModelTest.php dalam direktori tests/Unit.
2. Tulis kaedah ujian
Buka fail UserModelTest.php, kita boleh melihat kaedah ujian lalai berikut:
public function test_example() { $this->assertTrue(true); }
Ubah suai kepada kod berikut:
public function test_create_user() { $user = factory(User::class)->create([ 'name' => 'Tom', 'email' => 'tom@example.com', ]); $this->assertInstanceOf(User::class, $user); $this->assertEquals('Tom', $user->name); $this->assertEquals('tom@example.com', $user->email); }
Penjelasan kod:
1) Gunakan kaedah kilang untuk mencipta contoh model Pengguna.
2) Tetapkan nilai atribut nama dan e-mel.
3) Gunakan kaedah cipta untuk menyimpan contoh model ke dalam pangkalan data.
4) Tegaskan bahawa contoh model adalah jenis Pengguna.
5) Tegaskan bahawa nilai atribut nama bagi contoh model ialah 'Tom'.
6) Tegaskan bahawa nilai atribut e-mel bagi contoh model ini ialah 'tom@example.com'.
3. Jalankan ujian
Simpan fail dan buka terminal, jalankan arahan berikut untuk memulakan ujian:
php artisan test
Arahan ini akan melaksanakan semua kes ujian yang wujud dalam projek (semua fail nama fail dengan akhiran Test.php).
Jika ujian lulus, kita akan melihat output berikut:
PASS TestsUnitUserTest ✓ create user Tests: 1 passed Time: 0.10s
Melalui langkah di atas, kami berjaya menguji fungsi penciptaan model pengguna menggunakan kilang model. Dalam projek sebenar, kita boleh menulis pelbagai kes ujian dengan cara yang sama untuk menguji fungsi model yang berbeza.
3. Penggunaan lanjutan kilang model
Selain kaedah penggunaan asas yang dinyatakan di atas, kilang model juga mempunyai penggunaan lanjutan berikut:
1 🎜>
Laravel menggunakan perpustakaan Faker untuk menjana nilai atribut kejadian model. Faker ialah perpustakaan PHP untuk menjana data palsu. Kami boleh menyesuaikan kilang model untuk menentukan nilai atribut contoh model. Buka fail kilang pangkalan data (database/factories/ModelFactory.php) dan anda boleh melihat kod berikut:$factory->define(AppUser::class, function (FakerGenerator $faker) { static $password; return [ 'name' => $faker->name, 'email' => $faker->unique()->safeEmail, 'password' => $password ?: $password = bcrypt('secret'), 'remember_token' => str_random(10), ]; });
$user = factory(User::class)->create(); $post = factory(Post::class)->create(['user_id' => $user->id]);
$user = factory(User::class)->create(); $role = factory(Role::class)->create(); $user->roles()->attach($role);
Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana menggunakan kilang model untuk menguji pangkalan data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!