10 alat ujian JavaScript yang dipercayai

Keperluan untuk menguji kod JavaScript sangat mudah. Bagaimana lagi untuk mengelakkan bug dan memastikan aplikasi berjalan dengan lancar di penyemak imbas atau di Node.js? Nasib baik, pembangun mempunyai banyak pilihan ketika datang ke ujian JavaScript.

Pelari ujian dan kerangka kerja untuk pengujian unit, pengujian integrasi, dan pengujian fungsional tersedia untuk ekosistem JavaScript, dengan liputan untuk Node.js dan penyemak imbas serta untuk kerangka kerja Angular dan React. Berikut adalah 10 daripada banyak pilihan yang perlu diperhatikan oleh pemaju JavaScript untuk membantu mereka menguji aplikasinya.

AVA

AVA adalah pelari ujian untuk Node.js yang menawarkan API ringkas, output ralat terperinci, dan sokongan untuk ciri bahasa baru dan pengasingan proses. AVA sangat sesuai untuk menguji modul Node.js dan aplikasi pelayan, tetapi mungkin tidak untuk menguji aplikasi UI. Di antara kemampuannya, AVA menawarkan ciri untuk menandakan ujian sebagai tugas "yang harus dilakukan". Setiap fail ujian dijalankan adalah proses yang berasingan. Manfaat lain yang disebutkan termasuk minimalisme dan kelajuan AVA, sintaks ujian sederhana, dan kemampuan untuk menjalankan ujian secara serentak. AVA juga mempunyai sokongan untuk fungsi asinkron dan pengamatan - yang dapat diamati adalah jenis yang dapat digunakan untuk memodelkan sumber data berdasarkan push seperti peristiwa DOM.

Pasang AVA

Petunjuk untuk memasang AVA boleh didapati di halaman GitHub projek.

Timun.js

Pelaksanaan JavaScript alat ujian Cucumber, Cucumber.js berjalan pada versi Node.js yang dikekalkan dan dalam penyemak imbas web moden. Projek Cucumber memetik faedah termasuk komunikasi pasukan dan kemampuan untuk menjalankan ujian automatik yang ditulis dalam bahasa "biasa", yang bermaksud sesiapa sahaja dalam pasukan dapat membacanya. Oleh itu, komunikasi, kolaborasi, dan kepercayaan dapat ditingkatkan. Cucumber.js merangkumi fail yang boleh dilaksanakan untuk menjalankan suite ujian anda (disebut ciri), jadi tidak berfungsi apabila dipasang secara global. (Timun mesti diperlukan dalam fail sokongan dan modul yang dipasang secara global tidak diperlukan.)

Pasang Cucumber.js

Arahan untuk memasang Cucumber.js terdapat di GitHub.

Enzim

Enzyme adalah utiliti ujian untuk perpustakaan React JavaScript UI. Ini bertujuan untuk mempermudah pengujian output komponen React. Pembangun boleh memanipulasi, melintasi, dan mensimulasikan jangka masa yang diberikan. Enzyme API meniru jQuery API untuk manipulasi dan traversal DOM. Enzim tidak berminat tentang pelari ujian atau perpustakaan penegasan. Sekiranya pembangun ingin menggunakan Enzyme dengan penegasan tersuai dan fungsi kemudahan untuk menguji komponen React, mereka boleh mempertimbangkan chai-enzymedengan Mocha / Chai, jasmine-enzymedengan Jasmine, atau jest-enzymedengan Jest. Enzim juga boleh digunakan untuk menguji komponen React Native.

Pasang Enzim

Arahan untuk memasang Enzyme boleh didapati di GitHub. 

Karma

Karma adalah pelari ujian untuk JavaScript yang membolehkan pelaksanaan kod dalam pelbagai penyemak imbas. Semua penyemak imbas utama, termasuk penyemak imbas mudah alih, disokong. Pembangun di sebalik projek ini mengatakan Karma menawarkan persekitaran di mana pembangun tidak perlu mengatur banyak konfigurasi, tetapi dapat menulis kod dan mendapatkan maklum balas segera dari ujian. Karma direka untuk ujian (unit) tahap rendah. Bukan kerangka ujian atau perpustakaan penegasan, Karma melancarkan pelayan HTTP dan menghasilkan fail pelari ujian dari kerangka ujian kegemaran pemaju. Pemalam ditawarkan untuk kerangka seperti Jasmine, Mocha, dan QUnit.

Pasang Karma

Arahan untuk memasang Karma boleh didapati di GitHub.

Melati

Jasmine ditagih sebagai kerangka "berdasarkan tingkah laku" untuk menguji JavaScript. Ia tidak bergantung pada kerangka kerja JavaScript yang lain dan tidak memerlukan DOM. Penyokongnya menyebut sintaksisnya yang memungkinkan penulisan ujian yang mudah. Diselenggarakan oleh Pivotal Labs, Jasmine sesuai untuk menguji laman web, projek Node.js, dan apa sahaja di mana JavaScript dapat dijalankan. Jasmine bertujuan untuk memberikan kemudahan pengujian ke berbagai kes penggunaan dan penyemak imbas yang berbeza dan merupakan kerangka kerja JavaScript agnostik, yang memungkinkan pembangun dapat menguji kod dari React atau Angular atau pustaka JavaScript lain. Jasmine berusaha untuk kebergantungan minimum sambil tetap kecil dan dapat dikekalkan.

Pasang Melur

Petunjuk untuk memasang Jasmine dan memulakan dengan Jasmine boleh didapati di GitHub.

Berseloroh

Jest ditagih sebagai penyelesaian pengujian JavaScript komprehensif yang berfungsi di luar kotak, tanpa konfigurasi, untuk kebanyakan projek JavaScript. Ujian mempunyai keadaan global yang unik dan dapat dijalankan secara selari. Ujian yang gagal dijalankan dijalankan terlebih dahulu, dengan larian disusun semula berdasarkan panjang fail ujian. Hanya berfungsi dengan teknologi JavaScript yang popular termasuk Angular, Babel, Node.js, React, dan Vue. Ujian dapat dijalankan untuk melacak objek besar, dengan gambar yang tinggal bersama ujian atau tertanam sebaris. Dalam fail ujian, Jest memasukkan kaedah dan objek ke dalam persekitaran global, tanpa perlu mengimportnya.

Pasang Jest

Arahan untuk memasang Jest boleh didapati di GitHub. 

Luna

Luna adalah kerangka pengujian unit pendapat untuk JavaScript yang tidak memerlukan konfigurasi. Pembangun boleh menjalankan ujian unit pertama dalam beberapa minit, menurut dokumentasi produk. Laporan liputan kod dihasilkan tanpa memasang modul lain. Ujian mesti ditulis sebagai modul ES6, dengan ujian dijalankan di penyemak imbas secara lalai. Concurrency disokong, dengan kumpulan ujian dijalankan secara selari. Luna sebahagiannya terinspirasi oleh ujian bawaan yang tersedia untuk bahasa Go Google. Luna tidak sesuai dengan transpiling, jadi tidak akan berfungsi dengan CoffeeScript atau TypeScript. Ia juga tidak mempunyai sokongan untuk penyemak imbas yang lebih lama. 

Pasang Luna

Arahan untuk memasang Luna boleh didapati di GitHub. 

Mocha

Kerangka ujian kaya ciri yang berjalan di Node.js dan di penyemak imbas, Mocha berjanji untuk menjadikan pengujian kod tak segerak "mudah dan menyeronokkan." Ujian dijalankan secara bersiri, yang menurut penyokong membolehkan pelaporan yang tepat dan fleksibel sambil memetakan pengecualian yang tidak dapat ditangkap ke kes ujian yang tepat. Untuk ujian berterusan, pembangun boleh menggunakan alat Wallaby.js untuk membolehkan liputan kod masa nyata untuk Mocha dengan pustaka penegasan. Mocha juga terintegrasi dengan kerangka aplikasi, seperti melalui Konacha, yang memungkinkan pembangun menggunakan Mocha untuk menguji JavaScript dalam aplikasi Ruby on Rails. Sejumlah pemalam editor juga tersedia, seperti sambungan bar sisi Mocha untuk Visual Studio Code. 

Pasang Mocha

Arahan untuk memasang Mocha dan dokumentasi untuk banyak ciri Mocha terdapat di laman web projek. 

Protraktor

Protractor adalah kerangka ujian end-to-end untuk Angular dan pendahulunya, AngularJS. Ujian dijalankan terhadap aplikasi dalam penyemak imbas, dengan Proctractor berinteraksi dengan aplikasi seperti yang dilakukan pengguna. Strategi pencari khusus sudut disokong, untuk menguji elemen sudut tanpa persediaan. Keupayaan menunggu automatik membolehkan Protractor melakukan langkah berikutnya dalam ujian apabila laman web selesai menjalani ujian yang belum selesai. Protractor dibina di atas WebdriverJS, pelaksanaan JavaScript alat automasi penyemak imbas Selenium yang digunakan untuk ujian.

Pasang Protractor

Arahan untuk memasang Protractor boleh didapati di laman web Protractor. 

CEPAT

QUnit adalah kerangka ujian unit JavaScript yang digunakan oleh projek JQuery, jQuery UI, dan jQuery Mobile. Sebenarnya QUnit pada asalnya dikembangkan sebagai sebahagian daripada jQuery oleh jQuery pencipta John Resig. QUnit ditagih secepat dan mudah digunakan, dengan API yang dinilai tapi ramping dan dapat diperluas, dan dapat digunakan untuk menguji kod JavaScript umum. Apabila ujian atau penegasan gagal, QUnit berjanji untuk memberikan maklum balas secepat mungkin, dengan perincian yang mencukupi untuk mengetahui masalahnya. Kaedah penegasan dalam QUnit mengikuti spesifikasi pengujian unit CommonJS. QUnit menyokong penyemak imbas yang disokong oleh jQuery 3.x, termasuk varian Chrome, Edge, Firefox, Internet Explorer, dan Safari.

Pasang QUnit

Anda boleh memuat turun dan memasang QUnit dari laman web QUnit atau dari jQuery.cdn.