1. Apa itu Qunit
Qunit (http://qunitjs.com/) adalah kerangka pengujian unit JavaScript yang sangat kuat yang dapat membantu Anda men -debug kode Anda. Itu ditulis oleh anggota tim jQuery dan merupakan tes resmi untuk jQuery. Tetapi Qunit umumnya cukup untuk menguji kode JavaScript biasa, bahkan dapat menguji JavaScript sisi server melalui beberapa mesin JavaScript seperti badak atau V8.
Jika Anda tidak terbiasa dengan konsep "pengujian unit", tolong jangan khawatir. Ini tidak terlalu sulit untuk dipahami:
Salinan kode adalah sebagai berikut:
Dalam pemrograman komputer, pengujian unit (juga dikenal sebagai pengujian modul) adalah tes yang melakukan pengujian kebenaran pada modul program (unit terkecil dari desain perangkat lunak). Unit program adalah komponen yang dapat diuji terkecil untuk aplikasi tersebut. Dalam pemrograman prosedural, unit adalah program tunggal, fungsi, prosedur, dll.; Untuk pemrograman berorientasi objek, unit terkecil adalah metode, termasuk metode di kelas dasar (superclass), kelas abstrak, atau kelas turunan (subkelas). - Dikutip dari Wikipedia.
Sederhananya, Anda menulis tes untuk setiap fitur kode Anda, dan jika semua tes ini lulus, maka Anda dapat yakin bahwa kode tersebut tidak cacat (biasanya, itu tergantung pada seberapa teliti tes Anda).
2. Mengapa Anda ingin menguji kode Anda
Jika Anda belum pernah menulis tes unit sebelumnya, Anda dapat langsung mengunggah kode Anda ke situs web, klik sebentar untuk melihat apakah ada masalah yang muncul, dan cobalah untuk menyelesaikan masalah yang Anda temukan. Akan ada banyak masalah dengan metode ini.
Pertama -tama, ini sangat menjengkelkan. Mengklik sebenarnya bukan pekerjaan yang mudah, karena Anda harus memastikan semuanya diklik dan ada peluang bagus Anda melewatkan satu atau dua.
Kedua, semua yang Anda lakukan untuk pengujian tidak dapat digunakan kembali, yang berarti sulit untuk mundur. Apa itu Return? Bayangkan Anda menulis beberapa kode dan mengujinya, memperbaiki semua kekurangan yang Anda temukan, dan kemudian mempostingnya. Pada titik ini, pengguna mengirimkan umpan balik tentang kelemahan baru dan membutuhkan beberapa fitur baru. Anda kembali ke kode, memperbaiki kekurangan baru ini dan menambahkan fitur baru. Apa yang mungkin terjadi selanjutnya adalah bahwa beberapa kelemahan lama muncul kembali, yang disebut "kembali". Lihat, sekarang Anda harus mengklik lagi, dan mungkin saja Anda tidak dapat menemukan kelemahan beban lama ini; Bahkan jika Anda melakukannya, perlu waktu untuk mengetahui bahwa masalah Anda disebabkan oleh regresi. Menggunakan tes unit, Anda menulis tes untuk menemukan cacat, dan setelah kode dimodifikasi, Anda memfilter melalui tes lagi. Jika regresi terjadi, beberapa tes pasti akan gagal, dan Anda dapat dengan mudah mengenalinya dan mengetahui bagian mana dari kode yang berisi kesalahan. Sekarang setelah Anda tahu apa yang Anda modifikasi sekarang, itu dapat dengan mudah diselesaikan.
Keuntungan lain dari pengujian unit, terutama untuk pengembangan web: itu membuat pengujian kompatibilitas lintas-browser mudah. Cukup jalankan kasus uji Anda di browser yang berbeda. Jika ada masalah dengan satu browser, Anda memperbaikinya dan menjalankan kembali kasus-kasus uji ini untuk memastikan bahwa tidak ada regresi di browser lain. Setelah mereka semua lulus tes, Anda dapat mengatakan dengan pasti bahwa semua browser target mendukungnya.
Saya ingin menyebutkan sebuah proyek oleh John Resig: TestSwarm (http://testswarm.com/). Dibutuhkan pengujian unit JavaScript ke tingkat yang baru, dengan membuatnya didistribusikan, ini adalah situs web yang berisi banyak kasus uji yang dapat digunakan siapa pun ke sana untuk menjalankan beberapa kasus uji dan kemudian mengembalikan hasilnya ke server. Dengan cara ini, kode akan diuji dengan sangat cepat di berbagai browser, atau bahkan dijalankan pada platform yang berbeda.
3. Cara Menulis Tes Unit dengan Qunit
Jadi, bagaimana Anda menulis tes unit dengan benar dengan Qunit? Pertama, Anda perlu mengatur lingkungan pengujian:
Salinan kode adalah sebagai berikut:
<! Doctype html>
<Html>
<head>
<Title> Qunit Test Suite </iteme>
<tautan rel = "stylesheet" href = "http://github.com/jquery/qunit/raw/master/qunit/qunit/qunit.css" type = "text/css" media = "layar">
<type script = "Text/JavaScript" src = "http://github.com/jQuery/qunit/raw/master/qunit/qunit/qunit.js"> </script>
<!-File proyek Anda ada di sini->
<type skrip = "Text/JavaScript" src = "myproject.js"> </script>
<!-File tes Anda ada di sini->
<script type = "Text/JavaScript" src = "mytests.js"> </script>
</head>
<body>
<h1 id = "qunit-header"> qunit test suite </h1>
<h2 id = "qunit-banner"> </h2>
<Div id = "QUnit-Testrunner-Toolbar"> </div>
<h2 id = "qunit-useragent"> </h2>
<ol id = "qunit-tests"> </l>
</body>
</html>
Seperti yang Anda lihat, versi kerangka kerja Qunit yang dikelola digunakan di sini.
Kode yang akan diuji telah ditambahkan ke myproject.js, dan tes Anda harus dimasukkan ke mytest.js. Untuk menjalankan tes ini, cukup buka file HTML di browser. Sekarang saatnya menulis beberapa tes.
Landasan pengujian unit adalah pernyataan:
Pernyataan adalah proposisi yang memprediksi hasil pengembalian kode Anda. Jika prediksi itu salah dan pernyataan itu gagal, Anda tahu ada sesuatu yang salah.
Jalankan pernyataan dan Anda harus memasukkannya ke dalam test case:
Salinan kode adalah sebagai berikut:
// Ayo uji fungsi ini
fungsi iseven (val) {
return val % 2 === 0;
}
test ('isEven ()', function () {
OK (iseven (0), 'nol adalah angka genap');
OK (iseven (2), 'begitu juga dua');
OK (iseven (-4), 'Begitu juga negatif empat');
ok (! iseven (1), 'seseorang bukan angka genap');
ok (! iseven (-7), 'tidak ada negatif tujuh');
})
Di sini kami mendefinisikan fungsi: iseven, yang digunakan untuk mendeteksi apakah angka adalah angka ganjil, dan kami ingin menguji fungsi ini untuk mengkonfirmasi bahwa itu tidak akan mengembalikan jawaban yang salah.
Kami pertama -tama menelepon tes (), yang membangun test case; Parameter pertama adalah string yang akan ditampilkan dalam hasilnya, dan parameter kedua adalah fungsi panggilan balik yang mencakup master kami yang terganggu.
Kami menulis 5 pernyataan, yang semuanya boolean. Pernyataan Boolean yang mengharapkan argumen pertamanya benar. Parameter kedua masih merupakan pesan yang akan ditampilkan dalam hasilnya.
Inilah yang ingin Anda dapatkan, selama Anda menjalankan tes:
4. Referensi Pembelajaran yang mendalam
Di atas hanya secara singkat memperkenalkan qunit.js, dan ada banyak metode pernyataan. Untuk detailnya, silakan merujuk ke dokumentasi API:
http://api.qunitjs.com/
Pengujian unit adalah cara yang sangat baik untuk menguji kode Anda sebelum Anda mempublikasikannya. Jika Anda belum pernah menulis tes unit sebelumnya, sekarang saatnya untuk memulai!