Latihan 1 dari materi Testing API di Node.js — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Tulis test runner mini, versi kecil dari yang dikerjakan Vitest di balik it.
Kode awal sudah punya const results = [];, tiga panggilan test(...), dan runTests(); di akhir. Fungsinya belum ada.
- Ganti nama test pertama jadi persis
1 + 1 sama dengan 2. Dua test lainnya biarkan.
- Di atas test-test itu, tulis
function test(name, fn): di dalam try { ... } jalankan fn(), simpan { name, status: "passed" } ke results, lalu cetak "PASS: " + name. Di catch (err) { ... } simpan status "failed" dan cetak "FAIL: " + name. Cetak barisnya saat itu juga, jangan ditunda ke runTests.
- Tulis
function assert(condition) yang melempar new Error("Assertion failed") kalau condition salah.
- Tulis
function runTests() yang menghitung passed dan failed dari results (misalnya dengan filter), lalu mencetak "Results: " + passed + " passed, " + failed + " failed".
Output yang diharapkan:
PASS: 1 + 1 sama dengan 2
PASS: array includes item
FAIL: string length is wrong (intentional fail)
Results: 2 passed, 1 failed
Yang dinilai: output memuat PASS: 1 + 1 sama dengan 2, FAIL:, dan 2 passed, 1 failed; kodenya memakai try { dan catch (, dan menghitung rekapnya (dengan filter(, for (, forEach(, reduce(, ++, atau +=); dan test juga dicoba dengan dua test baru: test("uji tambahan", () => { assert(3 > 2); }); harus mencetak PASS: uji tambahan, dan test("uji gagal", () => { assert(1 === 2); }); harus mencetak FAIL: uji gagal.