vitest

21 questions · 4 rounds · ~32 min to play

Run this quiz live →

Free to host · players join from their phones

Mocks, stubs & spies

  1. Wat is volgens de klassieke indeling van Fowler en Meszaros het verschil tussen een stub en een mock?

    Show answer

    D

  2. In diezelfde indeling is een spy een stub die daarnaast bijhoudt hóe hij is aangeroepen.

    Show answer

    true

  3. Wat geeft de laatste aanroep terug? ```ts const fn = vi.fn(() => 'impl') fn.mockReturnValue('mocked') fn.mockReset() fn() ```

    Show answer

    D

  4. `vi.restoreAllMocks()` zet ook mocks die je met `vi.fn()` hebt gemaakt terug naar hun oorspronkelijke staat.

    Show answer

    false

  5. Je hebt `vi.spyOn(person, 'greet').mockImplementation(...)` gedaan. Welke methode zorgt dat `person.greet` daarna weer letterlijk de originele functie is?

    Show answer

    D

Hoisting & module mocks

  1. Deze test faalt met `Cannot access 'mockFetch' before initialization`. Waarom? ```ts const mockFetch = vi.fn() vi.mock('./api', () => ({ fetchUser: mockFetch })) ```

    Show answer

    C

  2. Wat is het belangrijkste verschil tussen `vi.doMock` en `vi.mock`?

    Show answer

    A

  3. Welke optie bij `vi.mock('./calculator.ts', ...)` laat de echte implementaties intact maar maakt van elke export een spy?

    Show answer

    A

  4. Wat gebeurt er als je `vi.mock('./api')` binnen een `describe`-callback zet?

    Show answer

    B

Concurrency & parallellisme

  1. Hoeveel concurrent tests laat Vitest standaard tegelijk lopen (`maxConcurrency`)?

    Show answer

    5

  2. Twee volledig synchrone tests met `test.concurrent` leveren geen tijdwinst op.

    Show answer

    true

  3. Waarom moet je in `test.concurrent` de `expect` uit de test-context gebruiken (`async ({ expect }) => ...`)?

    Show answer

    B

  4. Welke pool gebruikt Vitest standaard om testbestanden te draaien? (alleen de naam van de pool)

    Show answer

    forks

  5. Met welke CLI-flag draai je testbestanden één voor één in plaats van parallel? (alleen de flag)

    Show answer

    --no-file-parallelism

  6. Elke `test.concurrent`-test krijgt van Vitest een eigen worker toegewezen.

    Show answer

    false

Valkuilen & black box

  1. Welke van de twee assertions slaagt? ```ts const arg = { value: 0 } const fn = vi.fn() fn(arg) arg.value = 10 expect(fn).toHaveBeenCalledWith({ value: 0 }) expect(fn).toHaveBeenCalledWith({ value: 10 }) ```

    Show answer

    A

  2. Wat is `fn.mock.results[0].type` na deze code? ```ts const fn = vi.fn().mockRejectedValue(new Error('boom')) await fn().catch(() => {}) ```

    Show answer

    C

  3. Wat maakt een test volgens de ISTQB-definitie een black-box test?

    Show answer

    C

  4. Welke techniek hoort níet bij black-box testing?

    Show answer

    B

  5. In de standaardconfiguratie van Vitest 4 wordt de call-historie van mocks vóór elke test gewist.

    Show answer

    false

  6. Hoeveel milliseconden is de standaard `testTimeout` van Vitest?

    Show answer

    5000