Lihat paket-paket terbaik di kelasnya untuk mendapatkan fungsionalitas pengujian terbaik yang ditawarkan Node.

Pengujian adalah bagian penting dari setiap proses pengembangan perangkat lunak karena mengidentifikasi masalah dan kerentanan keamanan dengan kode Anda sebelum Anda mengirimkannya.

Ekosistem Node.js menawarkan berbagai paket pengujian untuk membantu Anda memastikan keandalan, kualitas, dan kinerja aplikasi Anda. Di sini Anda akan menjelajahi empat paket pengujian teratas di ekosistem Node.js.

Jest adalah kerangka pengujian yang menyediakan solusi pengujian yang mudah digunakan dan komprehensif untuk basis kode JavaScript. Dikembangkan oleh Meta, Jest menawarkan fitur-fitur seperti eksekusi uji paralel, cakupan kode, built-in pencocokan untuk pernyataan, ejekan, dan pengujian snapshot, menjadikannya pengujian yang kuat dan serbaguna kerangka.

Anda dapat menginstal Jest dengan menjalankan perintah di bawah ini:

npm install --save-dev jest

Berikut ini contoh yang didemonstrasikan pengujian dengan Jest untuk fungsi yang memeriksa apakah suatu angka ganjil:

menggambarkan("aneh", () => {
tes("mengembalikan true untuk masukan angka ganjil", () => {
harapkan (isOdd(3)).menjadi(BENAR);
});

tes("mengembalikan false untuk bilangan genap", () => {
harapkan (isOdd(2)).menjadi(PALSU);
});

tes("melempar kesalahan untuk input non-bilangan bulat", () => {
mengharapkan(() => {
aneh(3.5);
}).untuk melempar("Masukan bukan bilangan bulat");
});

tes("melempar kesalahan untuk input non-numerik", () => {
mengharapkan(() => {
aneh("3");
}).untuk melempar("Masukan bukan angka");
});
});

Saat Anda menjalankan rangkaian pengujian di atas, Jest akan menjalankan setiap pengujian individual dan membandingkan keluaran fungsi dengan nilai yang diharapkan menggunakan mengharapkan fungsi dan menjadi Dan untuk melempar pencocokan. Jika hasilnya tidak seperti yang diharapkan, Jest akan melaporkan pengujian yang gagal dan memberikan pesan kesalahan mendetail.

Jest juga memiliki dukungan bawaan untuk implementasi fungsi mocking. Selain itu, ia memiliki komunitas aktif yang besar dengan pembaruan dan peningkatan rutin.

Mocha adalah kerangka pengujian JavaScript yang menyediakan solusi yang fleksibel dan dapat diperluas untuk menulis pengujian untuk aplikasi JavaScript. Ini menawarkan sintaks sederhana dan minimalis untuk mendefinisikan tes.

Ini mendukung banyak pustaka pernyataan, seperti bawaan Node.js menegaskan module, Chai, dan Should.js, antara lain. Dukungan untuk beberapa pustaka pernyataan ini menjadikan Mocha pilihan ideal jika Anda lebih suka fleksibilitas dalam penyiapan pengujian.

Anda dapat menginstal Mocha dengan menjalankan perintah di bawah ini:

npm instal moka

Berikut adalah contoh yang mendemonstrasikan pengujian dengan Mocha dan Node.js menegaskan modul untuk fungsi yang mengembalikan jumlah dua angka:

const menegaskan = memerlukan('menegaskan');

menggambarkan('tambahkan Angka', fungsi() {
dia('Tambahkan dua angka positif', fungsi() {
const hasil = tambahBilangan(3, 5);
menegaskan.strictEqual (hasil, 8);
});

dia('Tambahkan angka positif dan negatif', fungsi() {
const hasil = tambahBilangan(3, -5);
menegaskan.strictEqual (hasil, -2);
});
});

Saat Anda menjalankan tes di atas, Mocha menjalankan setiap tes individu di dalam dia blok. Untuk setiap pengujian, Mocha mengeksekusi kode dalam fungsi pengujian, yang memanggil addNumber fungsi dengan nilai masukan tertentu dan kemudian menggunakan menegaskan modul untuk membandingkan output sebenarnya dari fungsi dengan output yang diharapkan. Jika pengujian gagal, Mocha melaporkan hasilnya sebagai kegagalan dan memberikan informasi tentang nilai output yang diharapkan dan aktual.

Salah satu keunggulan utama Mocha adalah fleksibilitasnya, karena memungkinkan Anda memilih pustaka pernyataan, reporter, dan konfigurasi lain sesuai kebutuhan Anda. Namun, Mocha memerlukan penyiapan tambahan untuk fitur-fitur seperti mocking dan pengujian snapshot, karena tidak menyertakannya di luar kotak. Dibandingkan dengan Jest, Mocha mungkin memerlukan lebih banyak konfigurasi dan pengaturan untuk mencapai fitur serupa.

Ava adalah kerangka kerja pengujian JavaScript yang berfokus pada kinerja dan konkurensi. Ini dirancang untuk menjalankan pengujian secara bersamaan, yang memungkinkan waktu eksekusi pengujian lebih cepat. Ava juga dilengkapi dengan test runner dan library assertion bawaan, menjadikannya solusi mandiri untuk menguji aplikasi JavaScript.

Anda dapat menginstal Ava dengan menjalankan perintah di bawah ini:

npm install --save-dev ava

Berikut adalah contoh yang mendemonstrasikan pengujian dengan Ava untuk fungsi yang mengembalikan jumlah dua angka:

impor tes dari'ava';

tes('addNumbers menambahkan dua angka positif', t => {
const hasil = tambahBilangan(3, 5);
t.is (hasil, 8);
});

tes('addNumbers menambahkan angka positif dan negatif', t => {
const hasil = tambahBilangan(3, -5);
t.is (hasil, -2);
});

Saat Anda menjalankan pengujian ini menggunakan Ava, setiap pengujian akan dijalankan dan melaporkan hasilnya ke konsol. Jika semua tes lulus, Ava akan melaporkan bahwa semua tes telah lulus. Jika ada pengujian yang gagal, Ava akan melaporkan pengujian mana yang gagal dan memberikan informasi tentang nilai keluaran yang diharapkan dan aktual.

Beberapa keunggulan Ava termasuk fokusnya pada kinerja dan konkurensi, memungkinkan waktu pelaksanaan pengujian yang lebih cepat, terutama dalam proyek dengan jumlah pengujian yang banyak. Namun, Ava mungkin memiliki kurva belajar yang lebih curam untuk pengembang yang baru mengenal sintaks JavaScript modern, seperti yang digunakannya modul ES dan fitur JavaScript modern lainnya.

Jasmine adalah kerangka pengujian pengembangan berbasis perilaku (BDD) untuk aplikasi JavaScript. Ini memberikan sintaks yang bersih dan ekspresif untuk menulis tes yang sangat mirip dengan bahasa alami, membuatnya mudah untuk dipahami dan menulis tes untuk orang teknis dan non-teknis. Jasmine juga dilengkapi dengan test runner dan library assertion bawaan, menjadikannya solusi komprehensif untuk menguji aplikasi JavaScript.

Anda dapat menginstal Jasmine dengan menjalankan perintah ini:

npm install --save-dev melati

Kemudian, Anda harus menginisialisasi Jasmine di direktori kerja Anda dengan menjalankan perintah di bawah ini:

melati init

Perintah di atas menghasilkan a mendukung folder di Anda spek folder (Tes). Folder ini menampung file jasmine.json file, yang berisi pengaturan konfigurasi untuk Jasmine.

Berikut adalah contoh yang mendemonstrasikan pengujian dengan Jasmine untuk fungsi yang memeriksa apakah suatu bilangan genap:

menggambarkan('adalah Genap', fungsi() {
dia('Kembalikan true untuk bilangan genap', fungsi() {
const hasil = genap(4);
harapkan (hasil).toBe(BENAR);
});

dia('Kembalikan salah untuk angka ganjil', fungsi() {
const hasil = genap(5);
harapkan (hasil).toBe(PALSU);
});
});

Saat Anda menjalankan pengujian di atas menggunakan Jasmine, Jasmine akan menjalankan setiap pengujian dan melaporkan hasilnya ke konsol. Jika semua tes lulus, Jasmine akan melaporkan bahwa semua tes telah lulus. Jika ada pengujian yang gagal, Jasmine akan melaporkan pengujian mana yang gagal dan memberikan informasi tentang nilai output yang diharapkan dan aktual.

Beberapa kelebihan Jasmine termasuk sintaks BDD-nya, yang membuat tes lebih mudah dibaca manusia dan membantu meningkatkan komunikasi antara anggota tim teknis dan non-teknis. Namun, Jasmine mungkin memiliki kurva belajar yang lebih curam untuk pengembang yang baru mengenal konsep BDD. Namun, perlu dicatat bahwa dibandingkan dengan kerangka kerja pengujian lainnya, Jasmine memerlukan banyak konfigurasi untuk disiapkan.

Memilih Kerangka Pengujian

Memilih kerangka pengujian untuk proyek Node.js memerlukan pertimbangan yang cermat terhadap beberapa faktor, termasuk pendekatan pengujian, kemudahan penggunaan, dukungan komunitas, integrasi dengan alat lain, dan pertunjukan. Namun pada akhirnya, pilihan tergantung pada proyek Anda, karena beberapa paket lebih cocok untuk proyek tertentu daripada yang lain.