Testimise ülesanded
Ülesanded on jaotatud tasemetele. Alusta alati madalamast — iga tase eeldab eelmise mõistmist.
Taseme 1: Unit testid (Vitest)
Eesmärk: Oskad seadistada Vitest Vite projektis ja kirjutada puhtaid unit teste.
- Loo Vite projekt või kasuta olemasolevat
- Paigalda Vitest, lisa
testskript - Implementeeri ja testi TDD-ga:
canBook(capacity, currentBookings)validateEmail(email)divide(a, b)— sh nulliga jagamine
Juhend: Unit testid Vitestiga
Kontroll:
- [ ]
npm run test:runläbib - [ ] Testides on nii happy path kui edge case
- [ ] Kasutad
describeja selgeid testinimesid
Taseme 2: Mockimine ja service unit testid
Eesmärk: Testid äriloogikat mock repository'ga.
- Loo lihtne
BookingServiceklass dependency injection'iga - Mocki
countBookingsjacreateBooking - Testi:
- Broneering õnnestub
- Workshop täis → viga
- Kasutaja juba broneerinud → viga
Juhend: Mockimine
Kontroll:
- [ ] Unit test ei kasuta andmebaasi
- [ ] Kontrollid
not.toHaveBeenCalled()kui broneeringut ei tohiks tekkida
Taseme 3: Integration testid (API)
Eesmärk: Testid Express API Supertestiga scaffold projektis.
- Klooni API projekt (ülevaade)
- Kirjuta integration testid:
GET /health→ 200POST /users— happy path + valideerimisveadPOST /workshops— capacity reeglidPOST /bookings— happy path, täis workshop, topeltbroneering
Juhend: Integration testid, Töötuba faasid 2–3
Kontroll:
- [ ]
beforeEachkutsubresetDb() - [ ] Testid töötavad järjekorra sõltumatult
Taseme 4: UI testid (Playwright)
Eesmärk: Testid kasutajateekonda brauseris.
- Seadista Playwright Vite frontend projektis (või õpetaja antud UI)
- Kirjuta vähemalt 2 E2E testi:
- Edukas broneerimine (või vormi submit)
- Veateade (nt täis workshop või valideerimine)
- (Valikuline) Lisa 1 komponendi test Testing Libraryga
Juhend: UI testimine
Kontroll:
- [ ]
npm run test:e2eläbib lokaalselt - [ ] Kasutad
getByRole/getByLabel, mitte ainult CSS selektoreid
Taseme 5: Jõudlus (Postman)
Eesmärk: Mõõdad API response time ja dokumenteerid tulemused.
- Loo Postman collection (health, users, workshops, bookings)
- Lisa test skriptid: status +
responseTime < 500(või kokkulepitud piir) - Käivita Collection Runner 10+ iteratsiooniga
- Koosta lühike testiplaan tabel (ÕV2)
Juhend: Jõudluse testimine Postmaniga
Kontroll:
- [ ] Environment muutujad (
userId,workshopId) töötavad - [ ] Testiplaan sisaldab oodatavat tulemust ja latency eesmärki
Refleksioon (kõik tasemed)
Vasta paaris või portfolio kirjelduseks:
- Mis vahe on unit, integration ja E2E testil sinu projektis?
- Milline test leidis vea, mida teine tüüp ei leidnud?
- Miks Vitest sobib Vite projektiga?
- Millal kasutaksid Postmanit vs Supertesti?
- Miks Playwright on oluline oskus (sh AI/automatiseerimise kontekstis)?