Rumah hujung hadapan web tutorial js Bermula dengan Qunit

Bermula dengan Qunit

Feb 21, 2025 pm 12:12 PM

Getting Started with QUnit

Ujian perisian adalah proses menilai perisian untuk mengesan perbezaan antara output yang dijangkakan dan output sebenar set input yang diberikan. Ujian, terutamanya ujian unit, harus menjadi bahagian penting dari setiap kehidupan pemaju. Malangnya, ramai pemaju kelihatan takut dengan aktiviti tersebut. Dalam JavaScript, kita boleh memilih dari banyak kerangka untuk menguji asas kod kami. Sebagai contoh, Mocha, Selenium, dan Qunit. Dalam artikel ini, saya akan memperkenalkan anda kepada Qunit. Qunit adalah rangka kerja ujian unit yang dibangunkan dan dikekalkan oleh pasukan jQuery, yang juga di belakang projek -projek seperti JQuery dan JQuery UI.

mata utama

    QUnit dibangunkan dan dikekalkan oleh pasukan jQuery dan merupakan rangka kerja ujian unit JavaScript yang popular untuk kemudahan penggunaan dan kesederhanaan persediaan.
  • Untuk memulakan dengan QUnit, muat turun versi terkini JavaScript dan fail CSS dari laman web QUNIT dan masukkannya dalam fail HTML anda.
  • QUnit menyediakan dua cara untuk membuat ujian baru:
  • untuk kod segerak dan QUnit.test() untuk kod tak segerak. Ujian ini mengandungi pernyataan yang mengesahkan bahawa kod berfungsi seperti yang diharapkan. QUnit.asyncTest()
  • QUnit menyediakan pelbagai kaedah penegasan termasuk
  • , deepEqual(), equal(), notDeepEqual(), notEqual(), propEqual(), strictEqual(), notPropEqual(), notStrictEqual(), ok() , , , throws() dan
  • . Setiap kaedah mempunyai tujuan khusus dan menerima parameter tertentu.
  • expect() Apabila membuat ujian dengan QUNIT, amalan terbaik adalah untuk menetapkan bilangan pernyataan yang akan dilaksanakan menggunakan kaedah
  • . Ini membantu memastikan semua pernyataan dilaksanakan dan jika satu atau lebih pernyataan tidak dilaksanakan, ujian akan gagal.

Tetapan QUnit

Salah satu sebab utama banyak pemaju menggunakan Qunit adalah kemudahan penggunaannya. Bermula dengan rangka kerja ini sangat mudah dan anda boleh menguasai konsep utama dalam beberapa jam. Langkah pertama untuk menggunakan QUnit jelas bermula dengan memuat turunnya. Terdapat beberapa cara untuk melakukan ini: Muat turun secara manual dari laman web, gunakan CDN, gunakan Bower, atau gunakan NPM. Nasihat saya ialah anda tidak boleh bergantung kepada CDN untuk menguji kod anda melainkan jika anda sedang membangunkan demo hidup yang mudah. Jadi berpegang pada pilihan lain. Untuk artikel ini, saya tidak mahu menetapkan sebarang prasyarat (baca Bower dan NPM), jadi kami akan mengambil pendekatan pertama. Oleh itu, lawati laman web QUNIT dan muat turun versi terkini fail JavaScript (bernama QUNIT-1.14.0.JS) dan fail CSS (bernama QUNIT-1.14.0.CSS). Letakkannya dalam folder di mana anda juga akan membuat index.html. Dalam fail ini, kami akan meletakkan kod HTML yang dipaparkan di halaman utama laman web, dan saya akan mengulanginya di bawah untuk kemudahan.
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>QUnit Example</title>
  <link rel="stylesheet" href="qunit-1.14.0.css">
</head>
<body>
  <div id="qunit"></div>
  <div id="qunit-fixture"></div>
  <🎜>
  <🎜>
</body>
</html>
Salin selepas log masuk
Salin selepas log masuk

Seperti yang anda lihat, kod ini menggunakan CDN untuk memasukkan fail CSS dan JavaScript. Oleh itu, anda perlu mengemas kini pautan untuk memasukkan fail yang anda muat turun sebelum ini. Dalam tanda, anda dapat melihat beberapa <div> diletakkan. Yang pertama mempunyai Qunit sebagai IDnya, yang digunakan oleh rangka kerja untuk memaparkan antara muka penggunanya, di mana keputusan ujian dipaparkan. Yang kedua <div>, yang ID adalah fixt Qunit, harus digunakan oleh anda (pemaju). Elemen ini membolehkan pemaju untuk menguji kod yang menambah, mengedit, atau menghilangkan elemen dari DOM tanpa bimbang tentang membersihkan DOM selepas setiap ujian. Jika anda meletakkan elemen yang anda buat oleh kod anda dalam <div> ini, QUnit akan mengendalikan tetapan semula untuk kami. Akhirnya, kami memasukkan fail tests.js yang mewakili fail yang mengandungi ujian. Nasihat saya adalah menggunakan fail untuk menyimpan ujian apabila bekerja dengan projek sebenar. Dalam demo langsung yang saya buat untuk tutorial ini, saya menggunakan JSBIN dan pastinya tidak membenarkan memuat naik fail. Jadi dalam demo, anda akan melihat bahawa saya telah menggabungkan kod ujian. Sekarang anda memahami apa yang dimaksudkan untuk menandakan setiap bahagian, buka halaman index.html dalam penyemak imbas anda untuk melihat apa yang berlaku. Jika semuanya berjalan lancar, anda harus melihat antara muka demo langsung seperti yang ditunjukkan di bawah, yang juga disediakan sebagai contoh JSBIN: QUNIT. Pada peringkat ini, satu -satunya bahagian antara muka ini yang berkaitan dengan kami adalah bahagian yang menunjukkan masa Qunit menghabiskan ujian pemprosesan, bilangan pernyataan yang ditakrifkan, dan bilangan ujian yang diluluskan dan gagal. Demonstrasi di atas menunjukkan bahawa kita tidak menentukan sebarang ujian. Mari selesaikan masalah ini.

bagaimana membuat ujian menggunakan qunit

QUnit menyediakan dua cara untuk membuat ujian baru: QUnit.test() dan QUnit.asyncTest(). Yang pertama digunakan untuk menguji kod berjalan serentak, manakala yang kedua digunakan untuk menguji kod tak segerak. Dalam bahagian ini, saya akan menerangkan cara membuat ujian untuk kod segerak. Tandatangan kaedah QUnit.test() adalah seperti berikut:

QUnit.test(name, testFunction)
Salin selepas log masuk
Salin selepas log masuk

Parameter pertama name adalah rentetan yang membantu kita mengenal pasti ujian yang dibuat. Parameter kedua testFunction adalah fungsi yang mengandungi pernyataan rangka kerja yang akan dilaksanakan. Rangka kerja ini melepasi parameter ke fungsi ini yang mendedahkan semua kaedah penegasan Qunit. Tukar keterangan ini ke kod, kami boleh mengemas kini fail tests.js dengan kod berikut:

QUnit.test('我的第一个测试', function(assert) {
   // 断言在这里...
});
Salin selepas log masuk

Kod ini mencipta ujian baru yang dikenal pasti oleh rentetan "Ujian Pertama Saya" dan fungsi dengan badan kosong. Menambah ujian tanpa sebarang pernyataan tidak digunakan. Untuk menyelesaikan masalah ini, kita mesti mempelajari kaedah penegasan yang terdapat di Qunit.

Kaedah penegasan Qunit

Pernyataan adalah di tengah -tengah ujian perisian. Mereka membolehkan kami mengesahkan bahawa kod kami berfungsi seperti yang diharapkan. Di Qunit, kami mempunyai banyak cara untuk mengesahkan jangkaan ini. Mereka boleh diakses dalam ujian oleh parameter fungsi yang diluluskan kepada kaedah

(dalam contoh sebelumnya, QUnit.test()). Senarai berikut meringkaskan kaedah yang ada, serta fungsi dan tandatangan mereka: assert

  • deepEqual(value, expected[, message]): Perbandingan ketat rekursif yang berfungsi untuk semua jenis JavaScript. Jika value dan expected adalah sama dari segi sifat dan nilai, dan mempunyai prototaip yang sama, pernyataan itu diluluskan;
  • : Parameter equal(value, expected[, message]) sama dengan value yang disediakan menggunakan pengesahan perbandingan bukan tegas (==). expected
  • : Sama seperti notDeepEqual(value, expected[, message]), tetapi ujian ketidaksamaan; deepEqual()
  • : Sama seperti
  • , tetapi ujian ketidaksamaan; notEqual(value, expected[, message]) equal(): Perbandingan ketat sifat dan nilai objek. Jika semua atribut dan nilai adalah sama, pernyataan itu berlalu;
  • : Gunakan perbandingan ketat (===) pengesahan untuk menyediakan parameter propEqual(value, expected[, message]) sama dengan
  • ;
  • strictEqual(value, expected[, message]): Sama seperti value, tetapi ujian ketidaksamaan; expected
  • : Sama seperti
  • , tetapi ujian ketidaksamaan; notPropEqual(value, expected[, message]) propEqual(): Jika parameter pertama adalah nilai yang benar, pernyataan itu berlalu;
  • : Uji sama ada panggilan balik melemparkan pengecualian dan membandingkan kesilapan yang dibuang; notStrictEqual(value, expected[, message]) strictEqual() Parameter yang diterima oleh kaedah ini adalah seperti berikut:
  • ok(value[, message])
  • : Nilai yang dikembalikan oleh fungsi, kaedah, atau nilai yang disimpan dalam pembolehubah yang mesti disahkan;
  • throws(function[, expected][, message]): Nilai yang akan diuji. Untuk kaedah
  • , ini boleh
;

: rentetan pilihan yang menerangkan pernyataan;
  • : Fungsi yang akan dilaksanakan harus mengembalikan ralat; value
  • Sekarang anda telah memahami kaedah dan parameter yang ada, sudah tiba masanya untuk menyemak beberapa kod. Daripada menulis pelbagai ujian untuk satu fungsi, saya cuba menghasilkan semula contoh yang lebih realistik. Bagaimanapun, ujian yang saya akan menunjukkan bahawa anda tidak boleh dianggap sebagai suite ujian lengkap, tetapi mereka harus memberi anda idea khusus untuk memulakannya. Untuk menulis ujian yang disebutkan, kita perlu menentukan beberapa kod untuk diuji. Dalam kes ini, saya akan menentukan objek literal seperti ini:
  • <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>QUnit Example</title>
      <link rel="stylesheet" href="qunit-1.14.0.css">
    </head>
    <body>
      <div id="qunit"></div>
      <div id="qunit-fixture"></div>
      <🎜>
      <🎜>
    </body>
    </html>
    Salin selepas log masuk
    Salin selepas log masuk

    seperti yang anda lihat, kami menentukan objek literal dengan tiga fungsi: max(), isOdd(), dan sortObj(). Yang pertama menerima bilangan parameter dan mengembalikan nilai maksimum. isOdd() Ambil nombor sebagai parameter dan ujian jika ia adalah nombor ganjil. sortObj() menerima pelbagai objek, idealnya harus ada atribut bernama Timestamp dan menyusunnya mengikut nilai atribut ini. Set ujian kemungkinan fungsi ini adalah seperti berikut: (Contoh kod ujian yang panjang ditinggalkan di sini kerana had perkataan telah melebihi, tetapi prinsipnya konsisten dengan penerangan sebelumnya)

    Tetapkan jangkaan

    Apabila membuat ujian, amalan terbaik adalah untuk menetapkan bilangan pernyataan yang kami harapkan untuk dilaksanakan. Melakukannya, jika satu atau lebih pernyataan tidak dilaksanakan, ujian akan gagal. Rangka kerja Qunit menyediakan kaedah expect() untuk tujuan ini. Kaedah ini amat berguna apabila berurusan dengan kod tak segerak, tetapi lebih baik menggunakannya semasa menguji fungsi segerak. Tandatangan kaedah expect() adalah seperti berikut:

    QUnit.test(name, testFunction)
    Salin selepas log masuk
    Salin selepas log masuk
    Parameter

    di mana assertionsNumber menentukan bilangan pernyataan yang dijangkakan. (Contoh mengemas kini kod ujian juga ditinggalkan di sini kerana had perkataan telah melebihi, tetapi prinsipnya konsisten dengan penerangan sebelumnya)

    QUnit PENGENALAN KESIMPULAN

    Dalam tutorial ini, saya memperkenalkan anda kepada dunia pengujian yang ajaib, terutamanya bagaimana untuk menguji kod JavaScript menggunakan QUNIT. Kami telah melihat betapa mudahnya untuk menubuhkan kerangka Qunit dan kaedah apa yang disediakan untuk menguji fungsi penyegerakan. Di samping itu, anda juga telah mempelajari set fungsi penegasan yang disediakan oleh rangka kerja untuk menguji kod tersebut. Akhirnya, saya menyebutkan pentingnya menetapkan bilangan pernyataan yang kami harapkan untuk dijalankan dan bagaimana untuk menetapkannya menggunakan kaedah expect(). Saya harap anda menikmati siaran ini dan anda akan mempertimbangkan mengintegrasikan Qunit ke dalam projek anda. (Bahagian Soalan Lazim ditinggalkan di sini kerana had perkataan telah melebihi)

    Atas ialah kandungan terperinci Bermula dengan Qunit. 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

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.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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 Java
1663
14
Tutorial PHP
1266
29
Tutorial C#
1239
24
Demystifying JavaScript: Apa yang berlaku dan mengapa penting Demystifying JavaScript: Apa yang berlaku dan mengapa penting Apr 09, 2025 am 12:07 AM

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Evolusi JavaScript: Trend Semasa dan Prospek Masa Depan Evolusi JavaScript: Trend Semasa dan Prospek Masa Depan Apr 10, 2025 am 09:33 AM

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

Enjin JavaScript: Membandingkan Pelaksanaan Enjin JavaScript: Membandingkan Pelaksanaan Apr 13, 2025 am 12:05 AM

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

JavaScript: meneroka serba boleh bahasa web JavaScript: meneroka serba boleh bahasa web Apr 11, 2025 am 12:01 AM

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Apr 16, 2025 am 12:12 AM

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend) Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend) Apr 11, 2025 am 08:22 AM

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

Dari C/C ke JavaScript: Bagaimana semuanya berfungsi Dari C/C ke JavaScript: Bagaimana semuanya berfungsi Apr 14, 2025 am 12:05 AM

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend) Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend) Apr 11, 2025 am 08:23 AM

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

See all articles