Latihan 1: Mocking & Stubbing — Testing

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

  1. 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.
  2. mockReturnValue(val): simpan nilainya, returnValue = val.
  3. mockImplementation(fn): simpan fungsinya, implementation = fn.
  4. 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 [].

Hint