Rumah > rangka kerja php > Laravel > Pembangunan Laravel: Bagaimana untuk menggunakan Ujian Laravel untuk ujian unit yang cekap?

Pembangunan Laravel: Bagaimana untuk menggunakan Ujian Laravel untuk ujian unit yang cekap?

WBOY
Lepaskan: 2023-06-14 08:38:42
asal
1688 orang telah melayarinya

Pembangunan Laravel: Bagaimana untuk menggunakan Ujian Laravel untuk ujian unit yang cekap?

Laravel ialah rangka kerja utama untuk pembangunan PHP Ia disukai oleh majoriti pembangun PHP kerana kemudahan pembelajaran, kemudahan penggunaan dan fungsi yang lengkap. Semasa proses pembangunan, ujian adalah penting kerana ujian yang baik meningkatkan kualiti dan kestabilan aplikasi.

Rangka kerja Laravel mempunyai alat Ujian Laravel terbina dalam, yang boleh membantu pembangun menulis ujian unit yang cekap dengan cepat. Artikel ini akan memperkenalkan cara menggunakan Ujian Laravel untuk ujian unit yang cekap.

Mengapa ujian unit?

Dalam proses pembangunan, ujian unit ialah pautan yang sangat penting. Mereka boleh membantu pembangun:

  • Pastikan kualiti kod: Ujian boleh menangkap ralat dan masalah kod, membolehkan pembangun menyelesaikan masalah tepat pada masanya dan memastikan kualiti kod.
  • Tingkatkan liputan kod: Ujian boleh membantu pembangun meningkatkan liputan kod untuk memastikan ujian merangkumi semua aspek aplikasi.
  • Sahkan gelagat kod: Ujian boleh membantu pembangun mengesahkan gelagat kod dan memastikan logik kod adalah betul.

Menggunakan ujian unit boleh mengurangkan risiko masalah dalam pembangunan kod dan meningkatkan kualiti dan kestabilan kod.

Faedah menggunakan Ujian Laravel untuk ujian unit

Untuk melaksanakan ujian unit, pembangun perlu menggunakan rangka kerja ujian untuk memastikan operasi normal kes ujian dan cepat menangkap masalah dan ralat. Pengujian Laravel ialah rangka kerja ujian yang sangat popular dalam rangka kerja Laravel. Rangka kerja ini mempunyai faedah berikut:

  • Mudah digunakan: Ujian Laravel mempunyai antara muka API yang mudah dan intuitif, membolehkan pembangun menulis dan melaksanakan kes ujian dengan cepat.
  • Rangka kerja Laravel Terbina dalam: Pengujian Laravel disepadukan dengan rangka kerja ujian terbina dalam rangka kerja Laravel, supaya pembangun boleh memanfaatkan ciri hebatnya Ia menggunakan kaedah teras rangka kerja Laravel, menjadikannya interaktif .
  • Digunakan secara meluas: Laravel ialah rangka kerja yang digunakan secara meluas dengan pangkalan pengguna dan komuniti yang besar yang menyediakan banyak sumber berharga seperti dokumentasi dan maklumat.

Struktur asas Pengujian Laravel

Sebelum menulis kes ujian, anda perlu memahami struktur asas Pengujian Laravel. Kes ujian Laravel, seperti komponen Laravel yang lain, juga merupakan kelas. Kelas ini harus mewarisi kelas PHPUnitFrameworkTestCase dan mempunyai akses kepada pelbagai perkhidmatan dalam rangka kerja Laravel. Contohnya, jika anda perlu mengakses arahan konsol semasa ujian, anda boleh menggunakan kaedah Artisan::call.

Struktur asas Pengujian Laravel adalah seperti berikut:

<?php

namespace TestsUnit;

use PHPUnitFrameworkTestCase;

class ExampleTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testBasicTest()
    {
        $this->assertTrue(true);
    }
}
Salin selepas log masuk
Salin selepas log masuk

Kelas ini mengandungi contoh kes ujian kaedah testBasicTest(). Memandangkan kaedah ujian harus dianggap sebagai ujian tunggal yang berasingan, sebaiknya namakan kaedah ujian mengikut tujuan ujian.

Menulis kes ujian

Proses menulis kes ujian biasanya dibahagikan kepada langkah berikut:

  • Sediakan persekitaran ujian: Mulakan aplikasi Laravel dan sediakan persekitaran ujian.
  • Tentukan ujian: Pengguna mentakrifkan satu atau lebih ujian untuk memastikan ketepatan logik aplikasi.
  • Jalankan ujian: Jalankan ujian dan kumpulkan keputusan, klasifikasikannya mengikut keputusan, dan rekodkan keputusan ujian untuk perbandingan kemudian.

Tentukan Ujian

Proses menentukan kes ujian biasanya melibatkan aspek berikut.

Sediakan persekitaran ujian

Sebelum memulakan ujian, anda perlu menyediakan persekitaran ujian. Dengan mencipta fail .env.testing, tetapkan pembolehubah persekitaran ujian di dalamnya. Rangka kerja Laravel secara automatik mengesan fail ini apabila memuatkan aplikasi dan menggunakan tetapan dalam fail ini secara lalai.

contoh.env.testing:

APP_NAME=Laravel
APP_ENV=testing
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=sqlite
DB_DATABASE=:memory:
Salin selepas log masuk

Tetapan lain juga boleh ditambah atau diubah suai dalam fail .env.testing. Di sini kami akan menggunakan pangkalan data sqlite, enjin pangkalan data yang ringan dan mudah diuji.

Apabila menggunakan pangkalan data sqlite, Laravel akan memindahkan data secara automatik, jadi pemindahan manual tidak diperlukan. Apabila mengakses pangkalan data dalam kaedah ujian, Laravel secara automatik akan menggunakan migrasi yang meletakkan data dalam pangkalan data. Oleh itu, tidak perlu mentakrifkan skema secara manual semasa ujian dijalankan.

Tulis contoh ujian mudah:

tests/Unit/ExampleTest.php

<?php

namespace TestsUnit;

use PHPUnitFrameworkTestCase;

class ExampleTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testBasicTest()
    {
        $this->assertTrue(true);
    }
}
Salin selepas log masuk
Salin selepas log masuk

Untuk menjalankan ujian ini dalam konsol, gunakan arahan berikut:

phpunit tests/Unit/ExampleTest.php
Salin selepas log masuk

Selepas menjalankan ujian ini, keputusan ujian akan dikeluarkan dalam konsol:

PHPUnit 8.5.1 by Sebastian Bergmann and contributors.

.                                                                   1 / 1 (100%)

Time: 00:00.010, Memory: 6.00 MB

OK (1 test, 1 assertion)
Salin selepas log masuk

Seperti yang anda lihat, ujian itu berjaya lulus.

Menggunakan Pangkalan Data Laravel

Kadangkala, kita perlu mengakses pangkalan data sebenar yang ditakrifkan dalam aplikasi Laravel. Apabila menggunakan fasad DB Laravel dalam aplikasi, Laravel secara automatik memilih persekitaran aplikasi semasa.

Pengujian boleh dilakukan melalui:

$this->assertDatabaseHas('users', [
    'email' => 'test@example.com'
]);
Salin selepas log masuk

Kaedah ujian ini menguji storan dan pengambilan pengguna. Di sini kami menggunakan assertDatabaseHas() untuk menambah penegasan untuk menguji sama ada data itu wujud.

Jika anda ingin memasukkan rekod ke dalam pangkalan data, anda boleh menggunakan kaedah berikut:

$user = factory(User::class)->create();

$this->assertDatabaseHas('users', [
    'email' => $user->email
]);
Salin selepas log masuk

Menggunakan objek palsu

Anda boleh menggunakan perpustakaan objek Mockery yang disediakan oleh Laravel untuk menjana objek olok-olok dan kebergantungan Transitif. Gunakan rangka kerja olok-olok Mockery dan bukannya objek mahal, berkod keras, dan kemudian manfaatkan perkhidmatan olok-olok ini bersama-sama kebergantungan lain, objek ujian atau komponen yang lebih besar.

Ejekan boleh memudahkan kod anda, sekali gus meningkatkan kualiti dan kebolehselenggaraan aplikasi anda.

$string = Mockery::mock('IlluminateHttpRequest');
$string->shouldReceive('input')

    ->once()
    ->andReturn('Welcome to Laravel Testing');
Salin selepas log masuk

$this->assertTrue(strlen($string->input()) === 23);

在上面的代码示例中,我们首先创建了一个伪造对象$string,它是IlluminateHttpRequest的模拟实例。然后我们编写测试用例来测试模拟实例$input方法的返回值。

完成这些步骤后,我们便可以快速编写测试用例,取得高效、可维护、高质量的程序。

总结

直接就知道程序的运行结果是不能保证代码完美运作,甚至有可能出现严重的错误。而单元测试能够较全面地检测应用程序的每个组成部分,从而确保应用程序的质量与稳定性。

在Laravel框架中,Laravel Testing是一种流行的测试框架。Laravel Testing是受欢迎的,因为它易于使用,与Laravel框架深度结合,并且具有广泛的使用情况与应用。

在编写测试用例时,应确保测试方法的名称明确地描述了测试的功能。在测试方法中,使用assert()和其他相关断言操作来测试方法。完成测试后,可以使用PHPUnit来运行测试。

因为Laravel Testing已经在Laravel框架中集成,所以它使得开发人员可以轻松地测试他们的应用程序。Laravel Testing使开发人员能够更自信地修改和更新代码,并确保不会对任何现有功能产生负面影响。

Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk menggunakan Ujian Laravel untuk ujian unit yang cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan