Rumah  >  Artikel  >  rangka kerja php  >  Pembangunan Laravel: Bagaimana menggunakan kilang model untuk menguji pangkalan data?

Pembangunan Laravel: Bagaimana menggunakan kilang model untuk menguji pangkalan data?

WBOY
WBOYasal
2023-06-13 18:44:34993semak imbas

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

Kod ini mentakrifkan nilai atribut lalai bagi kilang model Pengguna. Kami boleh mengubah suai atau menambah nilai atribut mengikut keperluan.

2. Gunakan hubungan perkaitan kilang model

Jika kita perlu menguji perkaitan antara model, kilang model juga boleh memberikan sokongan yang mudah. Katakan kita perlu menguji hubungan satu-ke-banyak antara pengguna dan artikel Kita boleh menggunakan kod berikut untuk mencipta contoh model pengguna dan artikel:

$user = factory(User::class)->create();
$post = factory(Post::class)->create(['user_id' => $user->id]);

Kod ini akan mencipta artikel kepunyaan pengguna dan menetapkan. id_pengguna yang berkaitan dengan artikel. Tetapkan kepada nilai id pengguna.

Jika kami perlu menguji perhubungan banyak-ke-banyak antara pengguna dan artikel, kami boleh menggunakan kod berikut untuk mencipta contoh pengguna dan model peranan:

$user = factory(User::class)->create();
$role = factory(Role::class)->create();
$user->roles()->attach($role);

Kod ini mencipta tika pengguna dan contoh peranan, dan kaitkan kedua-dua model.

Ringkasan:

Apabila menggunakan Laravel untuk pembangunan web, ujian adalah bahagian yang tidak boleh diabaikan. Sebagai bahagian penting alat ujian Laravel, kilang model boleh memudahkan proses ujian, mengurangkan lebihan kod dan meningkatkan kebolehpercayaan ujian. Menggunakan kilang model untuk menguji pangkalan data adalah bahagian yang tidak boleh diketepikan dalam pembangunan Laravel, dan ia patut memberikan permainan sepenuhnya kepada kelebihannya dalam pembangunan sebenar.

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!

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