Node.js Backend Development Bootcamp · Pelajaran

Pengujian Unit dengan Jest

Pelajari cara menulis pengujian unit terisolasi untuk fungsi dan modul individual menggunakan kerangka kerja pengujian Jest.

Pelajaran 1 dari 411 langkah

Pengujian Unit dengan Jest adalah pelajaran Node.js Backend Development Bootcamp gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Node.js Backend Development Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Node.js Backend Development Bootcamp mencakup 4 pelajaran total.

Apa Itu Pengujian Unit?

Selamat datang di pengujian unit! Ini adalah praktik dasar dalam pengembangan perangkat lunak, yaitu menguji komponen atau fungsi individual aplikasi Anda secara terpisah.

Bayangkan Anda memeriksa setiap roda gigi pada jam secara terpisah untuk memastikan semuanya berfungsi sempurna sebelum merakit seluruh mekanismenya. Hal ini membantu menemukan kesalahan lebih awal!

Kenali Jest: Pendamping Pengujian Anda

Untuk Node.js, Jest adalah salah satu kerangka kerja pengujian yang paling populer dan mudah digunakan oleh pengembang. Jest dikembangkan oleh Facebook dan menawarkan solusi terpadu yang lengkap untuk pengujian JavaScript.

  • Tanpa Konfigurasi: Sering kali dapat langsung digunakan.
  • Cepat: Dirancang untuk kinerja tinggi.
  • API Lengkap: Dilengkapi pustaka penegasan yang andal (pencocok).
  • Pengujian Cuplikan: Sangat baik untuk komponen UI.

Menginstal Jest

Memulai dengan Jest itu mudah. Anda akan menginstalnya sebagai dependensi pengembangan dalam proyek Node.js. Buka terminal di direktori utama proyek Anda, lalu jalankan:

npm install --save-dev jest

Setelah instalasi selesai, Anda dapat menambahkan skrip ke package.json agar pengujian dapat dijalankan dengan mudah:

"scripts": { "test": "jest" }

Fungsi Pertama yang Akan Diuji

Mari kita tulis fungsi sederhana yang ingin kita uji. Fungsi ini akan menjumlahkan dua angka. Kita akan menyimpannya dalam file bernama sum.js.

Anda dapat menjalankan file ini secara langsung untuk melihat cara kerja fungsinya, tetapi nanti kita akan menggunakan Jest untuk mengujinya secara otomatis!

function sum(a, b) {
  return a + b;
}

// This allows us to use 'sum' in other files
module.exports = sum;

// Optional: Run this part only if the file is executed directly
if (require.main === module) {
  console.log("Running sum(2, 3):");
  console.log("Result: ", sum(2, 3)); // Expected: 5
}

Menyusun File Pengujian

Jest mencari file pengujian berdasarkan konvensi penamaan tertentu, biasanya .test.js atau .spec.js. Mari kita buat sum.test.js di direktori yang sama.

Di dalamnya, kita menggunakan describe() untuk mengelompokkan pengujian yang berkaitan dan test() (atau it()) untuk kasus pengujian individual. Hal ini membuat pengujian Anda tertata dan mudah dibaca.

Membuat Penegasan dengan Pencocok

Di dalam blok test(), kita menggunakan expect() yang dipadukan dengan sebuah "pencocok" untuk menegaskan bahwa suatu nilai memenuhi kondisi tertentu. Misalnya, .toBe() memeriksa kesamaan yang persis.

Berikut cara kita menguji fungsi sum:

const sum = require('./sum');

describe('sum function', () => {
  test('adds 1 + 2 to equal 3', () => {
    expect(sum(1, 2)).toBe(3);
  });

  test('adds 0 + 0 to equal 0', () => {
    expect(sum(0, 0)).toBe(0);
  });

  test('adds negative numbers correctly', () => {
    expect(sum(-1, -2)).toBe(-3);
  });
});

Menjalankan Pengujian

Sekarang Anda memiliki file sum.js dan sum.test.js, serta Jest yang telah diinstal dan skrip yang telah dikonfigurasi. Anda dapat menjalankan pengujian!

Cukup ketik npm test di terminal Anda. Jest akan menemukan file .test.js, menjalankannya, lalu melaporkan hasilnya. Jika semua pengujian berhasil, Anda akan melihat warna hijau!

Menangani Pengujian Asinkron

Banyak aplikasi Node.js menangani operasi asinkron, seperti mengambil data dan melakukan panggilan basis data. Jest menanganinya dengan sangat baik!

Anda dapat menggunakan async/await secara langsung dalam fungsi pengujian. Jest akan menunggu hingga promise selesai sebelum menyelesaikan pengujian.

function fetchData() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve("Data from API");
    }, 50);
  });
}

module.exports = fetchData;

// Optional: Run this part only if the file is executed directly
if (require.main === module) {
  console.log("Simulating data fetch...");
  fetchData().then(data => console.log("Received: ", data));
}

Menulis Pengujian Asinkron

Untuk menguji fungsi fetchData, kita akan menandai fungsi pengujian sebagai async. Jest juga menyediakan pencocok khusus seperti .resolves dan .rejects untuk promise.

Menggunakan await dalam pengujian membuat kode asinkron tampak sinkron sehingga lebih mudah dibaca.

const fetchData = require('./fetchData');

describe('fetchData function', () => {
  test('should return "Data from API"', async () => {
    const data = await fetchData();
    expect(data).toBe('Data from API');
  });

  test('should resolve with specific data', () => {
    return expect(fetchData()).resolves.toBe('Data from API');
  });
});

Pemeriksaan Pencocok Jest

Pencocok Jest manakah yang akan Anda gunakan untuk memeriksa apakah dua objek memiliki nilai yang sama (perbandingan mendalam), bukan sekadar merupakan instans yang sama?

Pengujian Unit dengan Jest: Rangkuman

Kerja bagus! Anda telah mempelajari dasar-dasar pengujian unit dengan Jest. Kita telah membahas:

  • Pengertian pengujian unit dan manfaatnya.
  • Cara menginstal dan menyiapkan Jest.
  • Cara menyusun pengujian dengan describe dan test.
  • Cara membuat penegasan menggunakan expect dan pencocok seperti .toBe() dan .toEqual().
  • Cara menangani kode asinkron dengan async/await.

Teruslah berlatih dan selamat menguji!

Gratis untuk memulai

Belajar JavaScript dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
22
Pelajaran
92

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pengujian Unit dengan Jest” gratis?

Ya — teks lengkap “Pengujian Unit dengan Jest” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Node.js Backend Development Bootcamp, upgrade ke CoddyKit PRO. Kursus Node.js Backend Development Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pengujian Unit dengan Jest”?

Pelajari cara menulis pengujian unit terisolasi untuk fungsi dan modul individual menggunakan kerangka kerja pengujian Jest. Kamu berlatih Node.js Backend Development Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Node.js Backend Development Bootcamp?

Tidak diperlukan pengalaman sebelumnya. Node.js Backend Development Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Pengujian Unit dengan Jest” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Node.js Backend Development Bootcamp ini?

Ya. Setiap pelajaran Node.js Backend Development Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pengujian Unit dengan Jest
  2. Pengujian Integrasi Titik Akhir API
  3. Teknik Debugging yang Efektif
  4. Pembuatan Mock & Pengganti Pengujian di Node.js
← Kembali ke Node.js Backend Development Bootcamp