Rumah > pembangunan bahagian belakang > tutorial php > Panduan teknikal untuk ujian Mock dalam PHP

Panduan teknikal untuk ujian Mock dalam PHP

王林
Lepaskan: 2023-05-22 08:06:01
asal
1103 orang telah melayarinya

Dengan pembangunan berterusan pembangunan perisian, semakin banyak projek perlu diuji. Teknologi ujian olok-olok adalah salah satu kaedah ujian yang sangat penting. Ujian olok-olok merujuk kepada menggunakan objek olok-olok untuk menggantikan objek sebenar untuk mencapai ujian terperinci kelakuan menjalankan kod. Artikel ini akan memperkenalkan teknologi ujian Mock dalam PHP, termasuk konsep asas, kaedah pelaksanaan, kaedah penggunaan dan analisis kelebihan dan kekurangan.

1. Konsep Asas Pengujian Mock

  1. Objek Olok-olok

Objek Olok-olok merujuk kepada objek palsu yang digunakan untuk menggantikan objek sebenar dan menyediakan antara muka dan Peniruan tingkah laku. Objek yang disimulasikan oleh Mock Object biasanya dibuat secara manual oleh pengaturcara.

  1. Stub

Stub ialah sejenis Objek Olok-olok, yang biasanya hanya memberikan respons yang sangat mudah, seperti mengembalikan nilai. Stub boleh digunakan untuk menguji nilai pulangan mudah fungsi, hasil pertanyaan pangkalan data, sambungan rangkaian, dsb.

  1. Mock

Mock ialah satu lagi bentuk Objek Olok-olok Selain memberikan respons mudah, ia juga boleh merekodkan panggilan dan parameter yang dihantar kepada kaedahnya. Kelebihan terbesar ujian olok-olok ialah ia boleh mengesahkan sama ada kod dipanggil dengan betul.

  1. Spy

Spy ialah satu lagi bentuk Objek Olok-olok, yang boleh merekodkan parameter yang dihantar dan kaedah dipanggil.

2. Kaedah pelaksanaan

Biasanya terdapat dua cara untuk melaksanakan ujian Mock dalam PHP: pelaksanaan manual dan penggunaan rangka kerja Mock.

  1. Pelaksanaan manual

Kunci kepada pelaksanaan manual ujian Mock ialah menggunakan mekanisme refleksi PHP untuk mengakses kelas dan kaedah. Langkah-langkah umum adalah seperti berikut:

  • Tulis kelas Mock.
  • Segera kelas Mock.
  • Gunakan mekanisme refleksi PHP untuk mendapatkan kelas dan kaedah yang diperlukan.
  • Ganti kaedah dengan nilai pulangan tetap.
  1. Menggunakan rangka kerja Mock

Terdapat banyak rangka kerja Mock yang digunakan untuk PHP pada masa ini, seperti PHPUnit, Mockery, Phake, dll. Kedua-duanya menyediakan tahap simulasi dan kebolehujian yang tinggi.

Antaranya, PHPUnit ialah rangka kerja ujian popular dan rangka kerja ujian Mock. Olok-olok ialah rangka kerja ujian Mock tertumpu kod dengan sintaks yang jelas dan konfigurasi fleksibel.

3. Penggunaan

Yang berikut menggunakan rangka kerja PHPUnit sebagai contoh untuk memperkenalkan penggunaan ujian Mock dalam PHP.

  1. Pasang PHPUnit

Untuk memasang PHPUnit, anda boleh menggunakan Composer melalui arahan berikut:

composer require --dev phpunit/phpunit

  1. Menulis kes ujian

Apabila menulis kes ujian, anda perlu mencipta objek Mock dan objek Stub. PHPUnit menyediakan beberapa kaedah untuk mencipta objek ini.

Sebagai contoh, kita boleh mencipta objek Mock menggunakan kaedah berikut:

$mock = $this->getMockBuilder('SomeClass')->getMock();

Kami juga boleh mencipta Stub menggunakan kaedah berikut:

$stub = $this->getMockBuilder('SomeClass')->disableOriginalConstructor()->getMock();

dalam Apabila menggunakan ujian Mock, anda boleh mengejek fungsi atau kaedah contoh dengan menulis kes ujian seperti berikut:

testFunctionMock() fungsi awam
{

$function = $this->getMockBuilder('NamespaceFunctions')->setMethods(['doSome'])->getMock();
$function->expects($this->once())
         ->method('doSome')
         ->willReturn('hello');
$this->assertEquals('hello', $function->doSome());   
Salin selepas log masuk

}

Dalam kes ujian di atas, kami mengejek Fungsi dan menambah kaedah doSome menggunakan setMethods. Kemudian kami menetapkan jangkaan untuk kaedah olok-olok: dipanggil sekali sahaja dan mengembalikan nilai 'hello'.

  1. Jalankan kes ujian

Gunakan pelari ujian yang disertakan dengan PHPUnit untuk menjalankan kes ujian, seperti ditunjukkan di bawah:

./vendor/ ujian bin/phpunit

4. Analisis kelebihan dan kekurangan

Ujian olok-olok bukan sahaja boleh mengoptimumkan kod dengan berkesan dan mempercepatkan kelajuan ujian, tetapi juga membolehkan pengaturcara menumpukan perhatian dan meningkatkan kualiti kod.

  1. Kelebihan
  • Ia boleh mensimulasikan dan merangkumi semua laluan pelaksanaan kod, meningkatkan kebolehpercayaan kod.
  • Kes ujian baharu boleh dilaksanakan pada bila-bila masa.
  • boleh mempercepatkan ujian dan memberikan maklum balas yang lebih pantas.
  1. Kelemahan
  • mungkin mempunyai kesan tertentu pada prestasi.
  • Kes ujian Mock tidak dapat menyediakan ujian komprehensif kod, iaitu kelas dan kaedah yang terlibat dalam Mock mempunyai liputan yang sempit.
  • Memerlukan sejumlah masa dan usaha untuk menulis dan menyelenggara kes ujian Mock.

5. Ringkasan

Teknologi ujian olok-olok ialah bahagian yang sangat diperlukan dalam ujian perisian. Untuk melaksanakan teknologi ujian Mock dalam PHP, anda boleh menggunakan rangka kerja ujian seperti PHPUnit, atau anda boleh melaksanakannya secara manual. Ujian olok-olok boleh mengesahkan ketepatan kod dan boleh meningkatkan kebolehpercayaan kod dan kualiti kod pengaturcara dengan mensimulasikan dan meliputi semua laluan pelaksanaan kod. Walaupun teknologi ujian Mock memerlukan sejumlah masa dan usaha untuk menulis dan menyelenggara kes ujian, secara amnya, ia membolehkan pembangun menggunakan kod dengan lebih yakin, dengan itu meningkatkan kualiti kod dan kecekapan ujian.

Atas ialah kandungan terperinci Panduan teknikal untuk ujian Mock dalam PHP. 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