Latihan 1: Flaky Tests & Isolasi — Testing

Latihan 1 dari materi Flaky Tests & Isolasi di Testing — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Perbaiki counter yang flaky dengan menyuntikkan sumber acaknya dari luar.

  1. Lengkapi createCounter(rng) supaya mengembalikan object dengan:
    • property value yang mulai dari 0
    • method increment() yang memanggil rng(), lalu menambah value sebanyak 1 kalau hasilnya lebih dari 0.5, dan gak mengubah apa pun kalau sebaliknya
  2. Pakai rng() yang disuntikkan, bukan Math.random(). Simpan hitungannya di dalam object counter, bukan di variabel global.
  3. deterministicTest() di kode awal sudah membuat counter dengan RNG yang selalu mengembalikan 0.9, memanggil increment() tiga kali, lalu mengembalikan counter.value. Biarkan: hasilnya harus 3.
  4. Baris console.log(deterministicTest()) juga sudah ada, jadi console harus mencetak 3.

Hint