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

Panduan teknikal untuk ujian Mock dalam PHP

May 22, 2023 am 08:01 AM
php Panduan Teknikal ujian olok-olok

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());   

}

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!

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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1535
276
Penalaan Prestasi Pemetaan Objek (ORM) di PHP Penalaan Prestasi Pemetaan Objek (ORM) di PHP Jul 29, 2025 am 05:00 AM

Elakkan masalah pertanyaan n 1, mengurangkan bilangan pertanyaan pangkalan data dengan memuatkan data yang berkaitan terlebih dahulu; 2. Pilih hanya medan yang diperlukan untuk mengelakkan memuat entiti lengkap untuk menjimatkan memori dan jalur lebar; 3. Gunakan strategi cache yang munasabah, seperti cache sekunder doktrin atau hasil pertanyaan frekuensi tinggi Cache; 4. Mengoptimumkan kitaran hayat entiti dan panggilan jelas () secara teratur untuk membebaskan memori untuk mengelakkan limpahan memori; 5. Memastikan indeks pangkalan data wujud dan menganalisis penyata SQL yang dihasilkan untuk mengelakkan pertanyaan yang tidak cekap; 6. Lumpuhkan penjejakan perubahan automatik dalam senario di mana perubahan tidak diperlukan, dan gunakan array atau mod ringan untuk meningkatkan prestasi. Penggunaan ORM yang betul memerlukan menggabungkan pemantauan SQL, caching, pemprosesan batch dan pengoptimuman yang sesuai untuk memastikan prestasi aplikasi sambil mengekalkan kecekapan pembangunan.

Membina microservices yang berdaya tahan dengan PHP dan Rabbitmq Membina microservices yang berdaya tahan dengan PHP dan Rabbitmq Jul 27, 2025 am 04:32 AM

Untuk membina microservice PHP yang fleksibel, anda perlu menggunakan RabbitMQ untuk mencapai komunikasi asynchronous, 1. Decouple perkhidmatan melalui beratur mesej untuk mengelakkan kegagalan cascade; 2. Konfigurasi beratur berterusan, mesej berterusan, pengesahan pelepasan dan ACK manual untuk memastikan kebolehpercayaan; 3. Menggunakan Backoff Exponential Backoff, TTL dan Kegagalan Pemprosesan Keselamatan Gilir Surat Dead; 4. Gunakan alat seperti penyelia untuk melindungi proses pengguna dan membolehkan mekanisme degupan jantung untuk memastikan kesihatan perkhidmatan; dan akhirnya menyedari keupayaan sistem untuk terus beroperasi dalam kegagalan.

VSCODE SETTINGS.JSON Lokasi VSCODE SETTINGS.JSON Lokasi Aug 01, 2025 am 06:12 AM

Fail Tetapan.JSON terletak di laluan peringkat pengguna atau ruang kerja dan digunakan untuk menyesuaikan tetapan vscode. 1. Laluan peringkat pengguna: Windows adalah C: \ Users \\ AppData \ Roaming \ code \ user \ settings.json, macOS adalah /users//library/applicationsupport/code/user/settings.json, linux adalah/ 2. Laluan Tahap Ruang Kerja: .VSCODE/Tetapan dalam Direktori Root Projek

Revolusi tanpa pelayan: Menggunakan aplikasi PHP berskala dengan Bref Revolusi tanpa pelayan: Menggunakan aplikasi PHP berskala dengan Bref Jul 28, 2025 am 04:39 AM

Bref membolehkan pemaju PHP membina aplikasi yang berskala dan kos efektif tanpa menguruskan pelayan. 1.Bref membawa PHP ke Awslambda dengan menyediakan lapisan runtime PHP yang dioptimumkan, menyokong Php8.3 dan versi lain, dan dengan lancar mengintegrasikan dengan rangka kerja seperti Laravel dan Symfony; 2. Langkah -langkah penempatan termasuk: memasang Bref menggunakan komposer, mengkonfigurasi serverless.yml untuk menentukan fungsi dan peristiwa, seperti titik akhir HTTP dan perintah artisan; 3. Jalankan perintah ServerlessDeploy untuk melengkapkan penggunaan, secara automatik mengkonfigurasi apigeway dan menjana URL akses; 4. Bagi sekatan Lambda, Bref menyediakan penyelesaian.

Membina objek yang tidak berubah di PHP dengan sifat bacaan Membina objek yang tidak berubah di PHP dengan sifat bacaan Jul 30, 2025 am 05:40 AM

ReadonlypropertiesinPHP8.2canonlybeassignedonceintheconstructororatdeclarationandcannotbemodifiedafterward,enforcingimmutabilityatthelanguagelevel.2.Toachievedeepimmutability,wrapmutabletypeslikearraysinArrayObjectorusecustomimmutablecollectionssucha

Menyelam jauh ke dalam mekanisme pengumpulan sampah dalaman PHP Menyelam jauh ke dalam mekanisme pengumpulan sampah dalaman PHP Jul 28, 2025 am 04:44 AM

Mekanisme pengumpulan sampah PHP didasarkan pada penghitungan rujukan, tetapi rujukan bulat perlu diproses oleh pemungut sampah pekeliling berkala; 1. Rujukan kiraan rujukan segera memori apabila tidak ada rujukan kepada pembolehubah; 2. Rujukan rujukan menyebabkan memori tidak dapat dikeluarkan secara automatik, dan ia bergantung kepada GC untuk mengesan dan membersihkannya; 3. GC dicetuskan apabila zval "akar yang mungkin" mencapai ambang atau panggilan secara manual gc_collect_cycles (); 4. Aplikasi PHP jangka panjang harus memantau gc_status () dan hubungi gc_collect_cycles () dalam masa untuk mengelakkan kebocoran ingatan; 5. Amalan terbaik termasuk mengelakkan rujukan bulat, menggunakan gc_disable () untuk mengoptimumkan bidang utama prestasi, dan objek dereference melalui kaedah CLEAR () ORM.

Pergi dengan contoh contoh pembalakan middleware http Pergi dengan contoh contoh pembalakan middleware http Aug 03, 2025 am 11:35 AM

HTTP Log Middleware di GO boleh merakam kaedah permintaan, laluan, IP klien dan memakan masa. 1. Gunakan http.handlerfunc untuk membungkus pemproses, 2. Rekod waktu mula dan masa akhir sebelum dan selepas memanggil next.servehttp, 3. Dapatkan IP pelanggan sebenar melalui r.remoteaddr dan X-forward-for headers, 4. Gunakan log.printf untuk mengeluarkan log permintaan, 5. Kod sampel lengkap telah disahkan untuk dijalankan dan sesuai untuk memulakan projek kecil dan sederhana. Cadangan lanjutan termasuk menangkap kod status, menyokong log JSON dan meminta penjejakan ID.

Penonton pdf tepi tidak berfungsi Penonton pdf tepi tidak berfungsi Aug 07, 2025 pm 04:36 PM

Testthepdfinanotherapptodetermineiftheisseiswiththefileoredge.2.enableTetHEBuilt-Inpdfviewerbyturningoff "AlwaysopenpdffileseXternally" dan "muat turun" inedgesettings.3.clearbrowsdataincludingcookiesandcookiescookiesandcookiescookiesandcookiescookieshincookieshincookiescookiescookiescookiescookiescookiescookiescookiescookiescokiescookiescookiescookiescookiescookiescooker

See all articles