Teori Pengujian Unit (bersambung): Bahagian 2
Dalam artikel lepas, kami mula membincangkan teori ujian unit dalam WordPress. Secara khususnya, kami menyemak kerja kami pada tema dan pemalam ujian unit, kemudian beralih kepada membincangkan unit kod, cara ini memberi kesan kepada ujian kami dan kami menyemak ujian unit dalam dunia pembangunan perisian yang lebih besar.
Kami akan terus membincangkan teori ujian unit dalam WordPress, tetapi dari perspektif cara ia boleh membantu mengenal pasti isu, memacu seni bina, projek dokumen dan banyak lagi.
Cari masalah dan jimat masa
Imbau kembali kandungan siri ini sebelum ini, kaedah tradisional ujian unit adalah ini:
- Tulis ujian, jalankan (mengetahui ia akan gagal)
- Tulis fungsi untuk membuat kaedah ini lulus.
- Jalankan ujian. Jika ujian gagal, teruskan kerja pada fungsi jika tidak, pergi ke yang seterusnya.
Ya, langkah pertama agak dogmatik. Mengapa membuang masa menjalankan sesuatu yang anda tahu akan gagal, bukan? Tetapi, anda faham maksudnya. Tetapi apabila anda mula menggunakan teknik khusus ini untuk pembangunan, anda akan mendapati bahawa anda membangunkan irama tertentu semasa menulis kod, dan itu adalah sebahagian daripada matlamat keseluruhan.
Tetapi itu hanya separuh daripadanya - ujian unit sebenarnya boleh membantu anda menangkap masalah pada awal pembangunan.
Untuk memahami perkara ini, sebaiknya semak semula idea tersebut.
Katakan anda sedang membangunkan ciri untuk projek berasaskan WordPress di mana anda akan membenarkan pengguna membuat akaun pengguna tanpa benar-benar melog masuk ke papan pemuka WordPress. Ini menganggap anda telah menyediakan templat halaman untuk mengendalikan pendaftaran, pengesahan yang diperlukan dan kod untuk menjana kata laluan dan e-mel.
Anda memuatkan halaman dalam penyemak imbas anda dan cuba mencipta beberapa pengguna - beberapa dengan alamat e-mel yang sama, beberapa dengan kata laluan yang salah, beberapa dengan aksara yang tidak sah, dsb. Anda mendapat idea - terdapat pelbagai cara untuk mengesahkan bahawa ia lulus dan gagal. Ini sangat kasar! Ini bermakna setiap kali anda menukar fungsi pendaftaran pengguna, anda perlu melakukan pendaftaran yang sama untuk memastikan tiada masalah timbul.
Atau anda boleh menulis satu set ujian untuk mengendalikannya dan menjalankannya setiap kali kod berubah.
Jadi, ya, menulis ujian unit boleh mengambil banyak masa, tetapi lihat pada masa yang disimpan setiap kali anda mengubah suai unit kod. Ini amat berbaloi dan boleh membantu menangani isu lebih awal (iaitu sebelum dikeluarkan kepada pengeluaran) yang mungkin terlepas kerana seseorang terlupa untuk mengejek satu pilih atur ujian.
自record
Apabila menulis ujian unit, anda bukan sahaja meningkatkan kualiti kod anda dengan memastikan ia benar-benar berfungsi, tetapi pada asasnya anda juga menyediakan dokumentasi yang dihadapi oleh pembangun.
Jika anda sedang menguji unit ciri yang terbina dalam produk anda, anda akan menyediakan dokumentasi tentang cara ciri tersebut berfungsi, bila ia harus gagal dan bila ia harus lulus.
Dengan itu datang beberapa andaian: Secara khusus, anda secara logiknya menamakan dan mengumpulkan fungsi anda dan ujian yang berkaitan dengannya, dan anda sedang menguji setiap fungsi dengan betul.
Dengan PHPUnit, ujian unit WordPress boleh melaksanakan penegasan yang mudah dibaca dengan mudah. Anda hanya mengisytiharkan assertTrue, assertFalse, atau sebarang penegasan lain yang tersedia pada fungsi yang membentuk projek anda.
Mengikuti contoh di atas, ini bermakna anda boleh menulis fungsi yang memastikan fungsi pendaftaran pengguna gagal apabila cuba mendaftar dengan alamat e-mel kosong:
$this->assertFalse( registerNewUser( '' ) );
Mungkin satu contoh yang mudah, tetapi perkara itu tetap: kod anda menjadi pendokumentasian sendiri dan hanya memerlukan anda menulis ujian unit yang jelas.
Senibina
Mungkin salah satu kelebihan ujian unit yang paling dipandang rendah ialah ia boleh membantu memacu seni bina sesuatu projek. Lazimnya, pembangunan tema atau pemalam boleh bermula dengan salah satu daripada dua cara:
- Senaraikan fungsi, lukis antara muka pengguna, kemudian tulis kod
- Lukis gambarajah cara fail berfungsi bersama, kemudian tulis kod
Ini bukan perkara yang buruk, tetapi saya rasa ia lemah (saya akan menjadi orang pertama yang mengakui bahawa saya melakukan lebih daripada yang saya mahu kongsikan!). Tetapi langkah "tulis kod" datang dengan banyak tanggungjawab, bukan?
Ia sangat biasa kepada sesiapa sahaja yang telah mengekod untuk masa yang lama sehingga anda akhirnya menyedari, "Oh... saya tidak terfikir tentang itu."
Jika anda bernasib baik, ini biasanya bermakna anda boleh menulis kaedah pembantu atau bersyarat lain untuk mengendalikan kes yang anda abaikan, tetapi dalam kes yang paling teruk, ini bermakna anda mungkin perlu mereka bentuk semula keseluruhan kelas anda Atau keseluruhan koleksi fungsi yang menyelesaikan masalah ini.
Ujian unit, walaupun tidak sempurna, boleh membantu mengurangkan keadaan ini.
Pertimbangkan hakikat bahawa dari awal, anda mempunyai senarai semua ciri yang anda mahu tema atau pemalam anda tawarkan. Anda belum menulis sebarang kod lagi, tetapi mungkin anda mempunyai beberapa jenis lakaran UI dan/atau satu set gambar rajah kelas.
接下来,您开始编写要编写的测试以测试您的项目。回想一下,单元测试的一部分是将代码分解为尽可能的原子单元,因此您的任务是为每个单元编写单元测试,咳咳。
由于单元测试的性质,您本质上会以不同的方式思考您的代码:您正在考虑“编写测试”,而不是“编写代码”,并且因为您必须在更原子的级别上进行思考,您会情不自禁地考虑经常被归入“编写代码”的边缘案例。
代码的语言
作为开发人员,我们非常习惯使用不断强化我们编写代码的约定。我的意思是,我们倾向于提供缩写的变量名称、神秘的函数名称和类名称,这些名称对于您自己或项目团队之外的任何人来说可能没有任何意义。
单元测试不一定是编写更易于阅读的代码的关键,但它可以进一步帮助提供更清晰的函数名称。
回想一下您读过的第一本编程书、您参加的第一堂计算机科学课或者您看到的第一段开源代码,方法名称通常是动词。为什么他们不应该这样?方法是封装代码的方法,做一些事情。但随着我们在项目上工作的时间越来越长,我们变得越来越懒,我们的代码从“register_user_and_email_password()
”变成“new_account()
”。
显然,前者比后者更清晰,但如果我们致力于高质量的单元测试,并且希望确保我们的单元测试易于阅读,为了使它们易于阅读,我们的函数名称必须易于阅读。
这不是更容易阅读吗:
$this->assertFalse( register_user_and_email_password( '' ) );
而不是这个?
$this->assertFalse( new_account( '' ) );
同样,这也许是一个简单的示例,但原则仍然是:编写良好的单元测试,以帮助自我记录驱动函数语言的代码。
结论
我们已经讨论了单元测试的基础知识以及主要优点,但是我们还没有讨论单元测试带来的缺点,我们甚至还没有考虑如何将其合并到我们的项目中。工作流程。
因此,在下一篇文章中,我们将尝试做到这一点。
Atas ialah kandungan terperinci Teori Pengujian Unit (bersambung): Bahagian 2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



WordPress mudah untuk pemula bermula. 1. Selepas log masuk ke latar belakang, antara muka pengguna adalah intuitif dan papan pemuka mudah menyediakan semua pautan fungsi yang diperlukan. 2. Operasi asas termasuk mencipta dan mengedit kandungan. Editor WYSIWYG memudahkan penciptaan kandungan. 3. Pemula boleh mengembangkan fungsi laman web melalui pemalam dan tema, dan lengkung pembelajaran wujud tetapi boleh dikuasai melalui amalan.

Blog adalah platform yang ideal untuk orang ramai untuk menyatakan pendapat, pendapat dan pendapat mereka dalam talian. Ramai pemula bersemangat untuk membina laman web mereka sendiri tetapi teragak -agak untuk bimbang tentang halangan teknikal atau isu kos. Walau bagaimanapun, apabila platform terus berkembang untuk memenuhi keupayaan dan keperluan pemula, kini mula menjadi lebih mudah dari sebelumnya. Artikel ini akan membimbing anda langkah demi langkah bagaimana untuk membina blog WordPress, dari pemilihan tema untuk menggunakan plugin untuk meningkatkan keselamatan dan prestasi, membantu anda membuat laman web anda dengan mudah. Pilih topik dan arah blog Sebelum membeli nama domain atau mendaftarkan tuan rumah, sebaiknya mengenal pasti topik yang anda rancangkan. Laman web peribadi boleh berputar di sekitar perjalanan, memasak, ulasan produk, muzik atau hobi yang mencetuskan minat anda. Memfokuskan pada bidang yang anda benar -benar berminat dapat menggalakkan penulisan berterusan

Boleh belajar WordPress dalam masa tiga hari. 1. Menguasai pengetahuan asas, seperti tema, pemalam, dan lain-lain. 2. Memahami fungsi teras, termasuk prinsip pemasangan dan kerja. 3. Belajar penggunaan asas dan lanjutan melalui contoh. 4. Memahami teknik debugging dan cadangan pengoptimuman prestasi.

WordpressisgoodforvirtualyWebprojectduetoitsversatilityasacms.itexcelsin: 1) keramahan pengguna, membolehkan mudah

Wix sesuai untuk pengguna yang tidak mempunyai pengalaman pengaturcaraan, dan WordPress sesuai untuk pengguna yang mahukan lebih banyak keupayaan kawalan dan pengembangan. 1) Wix menyediakan editor drag-and-drop dan templat yang kaya, menjadikannya mudah untuk membina sebuah laman web dengan cepat. 2) Sebagai CMS sumber terbuka, WordPress mempunyai ekosistem komuniti dan plug-in yang besar, menyokong penyesuaian dan pengembangan yang mendalam.

WordPress sendiri adalah percuma, tetapi kos tambahan untuk digunakan: 1. WordPress.com menawarkan pakej dari percuma hingga dibayar, dengan harga dari beberapa dolar sebulan hingga berpuluh -puluh dolar; 2. WordPress.org memerlukan membeli nama domain (10-20 dolar AS setahun) dan perkhidmatan hosting (5-50 dolar AS sebulan); 3. Kebanyakan pemalam dan tema adalah percuma, dan harga berbayar adalah antara berpuluh-puluh dan beratus-ratus dolar; Dengan memilih perkhidmatan hosting yang betul, menggunakan plug-in dan tema yang munasabah, dan mengekalkan dan mengoptimumkan secara teratur, kos WordPress dapat dikawal dan dioptimumkan dengan berkesan.

Versi teras WordPress adalah percuma, tetapi yuran lain mungkin ditanggung semasa penggunaan. 1. Nama domain dan perkhidmatan hosting memerlukan pembayaran. 2. Tema lanjutan dan pemalam boleh dikenakan. 3. Perkhidmatan profesional dan ciri -ciri canggih boleh dikenakan.

WordPress adalah sistem pengurusan kandungan (CMS). Ia menyediakan pengurusan kandungan, pengurusan pengguna, tema dan keupayaan pemalam untuk menyokong penciptaan dan pengurusan kandungan laman web. Prinsip kerja termasuk pengurusan pangkalan data, sistem templat dan seni bina pemalam, sesuai untuk pelbagai keperluan dari blog ke laman web korporat.
