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.)

Preview