Skip to content

Latest commit

 

History

History
186 lines (133 loc) · 4.95 KB

test-tooling.md

File metadata and controls

186 lines (133 loc) · 4.95 KB

Test-tooling

Doel van dit document is beschrijven welke tooling we voor welke tests gebruiken.

De nadruk in dit document ligt op testautomatisering, maar zoals in ons "Testen en kwaliteit"-document staat: "handmatig en automatisch testen gaan samen".

Tests uitgevoerd door externe partijen (pen test, wettelijke toets) zijn niet opgenomen in dit document.

Frontend

Frontend "units"

  • Containercomponenten: zijn verantwoordelijk voor het ophalen en weergeven van data, zoals pagina's.
  • Presentatiecomponenten: zijn verantwoordelijk voor het weergeven van data.
  • Overige units: bijvoorbeeld API code, utility functies.

Tooling

Tests voor presentatiecomponenten

Omdat presentatiecomponenten puur de data weergeven die ze krijgen, kunnen ze met Ladle getest worden. Ze hebben geen backend of mock server nodig.

---
title: Presentatiecomponenten
---
flowchart LR
    rtl([React Testing Library])
    playwright([Playwright])
    component(Component)

    subgraph ladle-story [Ladle story]
        component
    end

    style ladle-story fill:#ececff,stroke:#c5b9de

    rtl --> component
    playwright --> component
Loading

Voor de tests met Playwright of een browser, wordt de story geserved door de ladle dev server.


Tests voor containercomponenten

Containercomponenten hebben interacties met de backend voor hun data. Ze hebben dus de backend of een mock server nodig.

---
title: Containercomponenten
---
flowchart LR
    component(Component)

    rtl([React Testing Library])
    msw([Mock Service Worker])

    rtl --> component
    component --> msw
Loading

---
title: React integration test
---
flowchart LR
    fe(Frontend)

    rtl([React Testing Library])
    msw([Mock Service Worker])

    rtl --> fe

    fe --> msw
Loading

Plan is om binnenkort deze tests te vervangen door Playwright tests. (issue 898)

Backend

Als de performance van cargo test een probleem wordt, kunnen we overstappen op cargo-nextest.

---
title: API integration tests
---
flowchart LR
    be(Backend)
    db[(Database)]

    api-client([API client])

    api-client --> be

    be --> db
Loading

End-to-end

Test runner: Playwright

---
title: End-to-end tests
---
flowchart LR
    fe(Frontend)
    be(Backend)
    db[(Database)]

    playwright([Playwright])

    playwright --> fe

    subgraph Abacus
        fe -.- be
        be -.- db
    end
Loading

Security

Performance

Nog te bepalen.

Toegankelijkheid

Nog te bepalen.