๐งช Pengenalan Jest
Jest adalah framework testing JavaScript yang powerful dan mudah digunakan. Dikembangkan oleh Meta (Facebook), Jest sangat populer dalam pengujian unit dan integrasi, khususnya dalam proyek React โ tetapi juga bisa digunakan untuk aplikasi JavaScript murni (vanilla JS), Node.js, hingga TypeScript.
๐ Fitur Unggulan Jest
- Zero config โ langsung bisa digunakan.
- Snapshot testing โ untuk menguji struktur output seperti HTML/JSON.
- Mocking built-in โ mudah membuat mock fungsi/module.
- Test coverage โ laporan seberapa banyak kode yang diuji.
- Runs in parallel โ performa cepat dengan worker threads.
๐ฆ Instalasi
npm install --save-dev jest
````
Tambahkan ke `package.json`:
```json
"scripts": {
"test": "jest"
}
Untuk proyek type: module, tambahkan opsi:
"type": "module",
"jest": {
"testEnvironment": "node"
}
๐งช Contoh Pengujian Dasar
Misal kita punya fungsi:
// sum.js
export function sum(a, b) {
return a + b;
}
Buat file test:
// sum.test.js
import { sum } from './sum.js';
test('menjumlahkan 1 + 2 = 3', () => {
expect(sum(1, 2)).toBe(3);
});
Jalankan test:
npm test
๐ Metode Expect Populer
| Fungsi | Penjelasan |
|---|---|
toBe() |
Kecocokan identik (===) |
toEqual() |
Untuk objek/array (deep equality) |
toBeTruthy() |
Nilai yang dianggap true |
toBeFalsy() |
Nilai yang dianggap false |
toContain() |
Cek apakah array/string mengandung nilai |
toThrow() |
Cek error dilempar atau tidak |
๐งช Coverage Test
Untuk melihat cakupan pengujian:
npx jest --coverage
Akan muncul laporan detail berapa persen kode yang diuji.
๐ Struktur Proyek Rekomendasi
/project-root
โโโ src/
โ โโโ sum.js
โโโ tests/
โ โโโ sum.test.js
โโโ package.json
๐ Referensi Resmi
```