Anatomi sebuah test
Struktur test standar: describe mengelompokkan, it/test mendeskripsikan satu perilaku, expect memeriksa hasilnya. Nama test yang baik menjelaskan perilaku, bukan implementasi: 'mengembalikan 0 untuk array kosong' jauh lebih berguna daripada 'test fungsi total'. Satu test sebaiknya memeriksa satu perilaku saja, supaya ketika gagal kamu langsung tahu bagian mana yang rusak tanpa membaca isinya.
👀 Contoh dulu
function diskon(harga, persen) {
return harga - (harga * persen) / 100;
}
describe('diskon', () => {
it('mengurangi harga sesuai persentase', () => {
expect(diskon(100000, 10)).toBe(90000);
});
it('mengembalikan harga utuh saat diskon 0', () => {
expect(diskon(100000, 0)).toBe(100000);
});
});Hasilnya: Saat dijalankan test runner: ✓ mengurangi harga sesuai persentase, ✓ mengembalikan harga utuh saat diskon 0
💡 describe = nama yang diuji, it = satu perilaku spesifik, expect = pemeriksaannya. Satu it sebaiknya menguji satu hal.
📝 Sekarang giliranmu
Tulis test untuk fungsi total: buat describe('total', ...) berisi satu it dengan expect(total([1,2])).toBe(3). (Sintaksnya saja — test runner belum berjalan di preview.)