Latihan 1 dari materi Matcher & Assertions di Testing — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Buat sendiri expect(value) versi mini, seperti di bagian "Di balik layar: matcher itu cuma fungsi". Kode awal sudah punya kerangkanya.
toBe(expected): kembalikan value === expected.
toEqual(expected): kembalikan hasil membandingkan JSON.stringify(value) dengan JSON.stringify(expected).
toContain(item): kembalikan true kalau value array yang memuat item, misalnya Array.isArray(value) && value.includes(item).
toBeGreaterThan(n): kembalikan value > n.
Di dalam not, tulis keempat matcher itu lagi dengan hasil yang dibalik. Negasinya harus benar juga saat hasil aslinya false.
Di bawah function-nya, cetak satu pemeriksaan: console.log(expect(2 + 2).toBe(4));, yang mencetak true.
Yang dinilai: function expect ada dan memakai JSON.stringify(...), ada matcher toEqual, ada baris console.log(expect(...)...) yang mencetak true, dan nilai kembalian ini:
expect(5).not.toBe(3) harus true
expect([1, 2, 3]).toContain(9) harus false
expect({ a: 1 }).toEqual({ a: 2 }) harus false
expect(3).toBeGreaterThan(5) harus false
Hint
Tiap matcher cuma membandingkan value yang diingat expect dengan argumennya, lalu mengembalikan true atau false.
toBe pakai ===, toEqual membandingkan dua hasil JSON.stringify, toContain pakai Array.isArray dan includes, toBeGreaterThan pakai >. Di dalam not, tulis lagi dengan hasil dibalik.
toEqual(expected) { return JSON.stringify(value) === JSON.stringify(expected); }, lalu di not: toBe(expected) { return value !== expected; }, toContain(item) { return !(Array.isArray(value) && value.includes(item)); }. Terakhir: console.log(expect(2 + 2).toBe(4));
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...