Latihan 1 dari materi Mocking & Stubbing di Testing — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Bikin vi.fn() versi mini dari nol, seperti bagian "Di balik layar: tiruan buatan sendiri", tanpa helper mock dari pustaka mana pun. Kode awal sudah punya kerangka createMock().
- Di dalam
mockFn(...args): naikkan mockFn.callCount satu, simpan args ke mockFn.lastArgs (selalu diganti, juga saat dipanggil tanpa argumen), lalu kembalikan implementation(...args) kalau implementation sudah diisi, atau returnValue kalau belum.
mockReturnValue(val): simpan nilainya, returnValue = val.
mockImplementation(fn): simpan fungsinya, implementation = fn.
- Contoh pemakaian di bawah kode awal sudah mencetak tiga baris dengan urutan
42, 2, [1,2]. Biarkan begitu:
const mock = createMock();
mock.mockReturnValue(42);
console.log(mock());
mock(1, 2);
console.log(mock.callCount);
console.log(JSON.stringify(mock.lastArgs));
Yang dinilai: baris pertama yang tercetak 42, baris kedua 2, ada baris [1,2], kodenya menyimpan returnValue = val atau implementation = fn, dan mock baru yang dipanggil m(1), m(7, 8), lalu m() mencatat callCount 3 dan lastArgs [].