Materi
Handler berbentuk fungsi req → respons bisa diuji tanpa menyalakan server: buat objek request, panggil handler, periksa responsnya. Tidak ada port yang dibuka, tidak ada jaringan, dan hasilnya sama setiap kali. Panduan Mocking in tests di nodejs.org menuntut hal yang sama dari setiap tes: bisa dijalankan dalam urutan apa pun, berapa kali pun, dan selalu memberi hasil yang sama.
import { test } from "node:test";
import assert from "node:assert/strict";
test("POST /ulasan tanpa bintang ditolak 422", () => {
const res = handler(buatReq({ method: "POST", path: "/ulasan", data: { teks: "Enak" } }));
assert.equal(res.status, 422);
assert.deepEqual(res.body.errors.map((e) => e.pointer), ["#/bintang"]);
});Pembuat request tiruan dengan nilai bawaan membuat setiap tes cukup menulis bagian yang penting. Uji setiap cabang handler, bukan hanya jalur berhasil: setiap kode status yang bisa dikembalikan butuh minimal satu kasus, dan header yang dijanjikan ikut diperiksa, seperti Location pada 201, Allow pada 405, dan WWW-Authenticate pada 401. Badan diperiksa pada field yang dijanjikan saja.
Untuk menilai apakah sekumpulan kasus sudah cukup, jalankan kasus yang sama terhadap beberapa mutan, yaitu salinan handler yang sengaja dicacatkan satu hal. Kasus yang baik lulus pada handler benar dan gagal pada setiap mutan. Kelas Pengujian Perangkat Lunak memakai teknik yang sama untuk menilai tes buatan peserta.