Rumah >hujung hadapan web >tutorial js >Bermula dengan Qunit
mata utama
QUnit.test()
untuk kod tak segerak. Ujian ini mengandungi pernyataan yang mengesahkan bahawa kod berfungsi seperti yang diharapkan. QUnit.asyncTest()
deepEqual()
, equal()
, notDeepEqual()
, notEqual()
, propEqual()
, strictEqual()
, notPropEqual()
, notStrictEqual()
, ok()
, throws()
dan expect()
Apabila membuat ujian dengan QUNIT, amalan terbaik adalah untuk menetapkan bilangan pernyataan yang akan dilaksanakan menggunakan kaedah 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.
<code class="language-html"><!DOCTYPE html> <meta charset="utf-8"> <title>QUnit Example</title> <link rel="stylesheet" href="qunit-1.14.0.css"> <div id="qunit"></div> <div id="qunit-fixture"></div> </code>
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 <code><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 <code><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.
<p> <strong> bagaimana membuat ujian menggunakan qunit </strong> </p>
<p> QUnit menyediakan dua cara untuk membuat ujian baru: <code>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:
<code class="language-javascript">QUnit.test(name, testFunction)</code>
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:
<code class="language-javascript">QUnit.test('我的第一个测试', function(assert) { // 断言在这里... });</code>
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
(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;
equal(value, expected[, message])
sama dengan value
yang disediakan menggunakan pengesahan perbandingan bukan tegas (==). expected
notDeepEqual(value, expected[, message])
, tetapi ujian ketidaksamaan;
deepEqual()
notEqual(value, expected[, message])
equal()
: Perbandingan ketat sifat dan nilai objek. Jika semua atribut dan nilai adalah sama, pernyataan itu berlalu;
propEqual(value, expected[, message])
sama dengan strictEqual(value, expected[, message])
: Sama seperti value
, tetapi ujian ketidaksamaan;
expected
notPropEqual(value, expected[, message])
propEqual()
: Jika parameter pertama adalah nilai yang benar, pernyataan itu berlalu;
notStrictEqual(value, expected[, message])
strictEqual()
Parameter yang diterima oleh kaedah ini adalah seperti berikut: ok(value[, message])
throws(function[, expected][, message])
: Nilai yang akan diuji. Untuk kaedah : rentetan pilihan yang menerangkan pernyataan;
value
<code class="language-html"><!DOCTYPE html> <meta charset="utf-8"> <title>QUnit Example</title> <link rel="stylesheet" href="qunit-1.14.0.css"> <div id="qunit"></div> <div id="qunit-fixture"></div> </code>
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:
<code class="language-javascript">QUnit.test(name, testFunction)</code>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!