Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan PhpSpec untuk pembangunan dipacu ujian dalam PHP

Cara menggunakan PhpSpec untuk pembangunan dipacu ujian dalam PHP

PHPz
PHPzasal
2023-06-27 10:04:361481semak imbas

PhpSpec ialah alat pembangunan dipacu ujian yang sangat popular dalam bahasa PHP. Ia boleh membantu pembangun menjalankan ujian unit dengan lebih mudah dan cekap, sekali gus meningkatkan kualiti dan kebolehpercayaan kod. Artikel ini bertujuan untuk memperkenalkan cara menggunakan PhpSpec untuk pembangunan dipacu ujian.

1. Pasang PhpSpec

Sebelum menggunakan PhpSpec, langkah pertama ialah memasangnya ke dalam persekitaran pembangunan tempatan anda. Proses pemasangan adalah sangat mudah. ​​Anda hanya perlu menggunakan Composer untuk memasang Langkah-langkah khusus adalah seperti berikut:

  1. Buka terminal dan beralih ke direktori di mana projek itu berada
  2. Laksanakan komposer memerlukan phpspec/phpspec -- dev;
  3. Tunggu pemasangan selesai .

Selepas pemasangan selesai, kita boleh mencari fail boleh laku phpspec dalam direktori vendor/bin.

2. Buat fail ujian

Apabila kita mula menulis kes ujian, kita perlu membuat fail ujian PhpSpec dahulu. Fail ujian boleh dijana secara automatik dengan melaksanakan perintah berikut:

  1. Buka terminal dan tukar ke direktori di mana projek itu berada
  2. Laksanakan perintah vendor/bin/phpspec describe [class name]
  3. Contohnya: vendor/bin/phpspec terangkan App/ Service/ExampleService.

Selepas melaksanakan arahan di atas, PhpSpec akan menjana folder ujian secara automatik, yang mengandungi fail ExampleServiceSpec.php. Fail ini ialah fail yang kami gunakan untuk menulis kes ujian untuk kelas ExampleService.

3. Tulis kes ujian

Seterusnya, kita boleh mula menulis kes ujian. Dalam fail ExampleServiceSpec.php, cari kaedah huraikan, yang mewakili senario ujian.

Dalam kaedah huraikan, kita boleh menggunakan kaedah let untuk mentakrifkan objek yang diperlukan dalam ujian, contohnya:

class ExampleServiceSpec extends ObjectBehavior
{
    public function let(ExampleRepository $exampleRepository)
    {
        $this->beConstructedWith($exampleRepository);
    }
}

Dalam kod di atas, kami menggunakan kaedah let untuk menyuntik objek ExampleRepository untuk menyediakan kebergantungan yang diperlukan untuk ExampleService .

Kemudian, kita boleh menulis kes ujian tertentu. Contohnya:

class ExampleServiceSpec extends ObjectBehavior
{
    // ... 

    public function it_should_create_example(ExampleRepository $exampleRepository)
    {
        $exampleData = ['title' => 'example', 'content' => 'example content'];

        $exampleRepository->create($exampleData)->shouldBeCalled();

        $this->createExample($exampleData);
    }
}

Dalam kod di atas, kami telah menentukan kes ujian bernama "it_should_create_example". Melalui contoh, kita dapat melihat bahawa ArgumentMatchers digunakan, di mana kaedah cipta menerima parameter $exampleData.

Setiap kes ujian terdiri daripada satu atau lebih penegasan. Dalam contoh di atas, kami menjangkakan bahawa kaedah cipta dalam objek ExampleRepository akan dipanggil dengan parameter $exampleData yang diluluskan.

4. Jalankan kes ujian

Selepas kes ujian ditulis, kita boleh menggunakan PhpSpec untuk menjalankan ujian. Jalankan arahan berikut:

vendor/bin/phpspec run

Jika kes ujian berjaya lulus, PhpSpec akan mengeluarkan bendera kejayaan hijau jika kes ujian gagal, PhpSpec akan mengeluarkan bendera kegagalan merah dan memberikan mesej kegagalan butiran. Ringkasan keputusan ujian. Melalui langkah ini, kami boleh melakukan ujian unit dengan lebih mudah dan cekap, sekali gus meningkatkan kualiti dan kebolehpercayaan kod.

Atas ialah kandungan terperinci Cara menggunakan PhpSpec untuk pembangunan dipacu ujian dalam PHP. 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