-
Notifications
You must be signed in to change notification settings - Fork 0
Backend Test Documentation
TilenBrunec edited this page Jun 5, 2026
·
3 revisions
| Issue | S5-01 |
| Datum | 3. 6. 2026 |
| Framework | JUnit 5 + Mockito |
| Ciljna pokritost | ≥ 80% |
| Avtor | Tilen Brunec |
Vsi testi so implementirani kot unit testi z uporabo Mockito ogrodja. To pomeni:
- Brez pravih povezav na bazo — vse je simulirano z
mockobjekti - Testi so neodvisni drug od drugega
- Hitro izvajanje — ni odvisnosti od zunanjih storitev
- Baza in podatki ostanejo nedotaknjeni
| Razred | Skupaj | Pravilen | Robni | Napačen | Poročilo |
|---|---|---|---|---|---|
PredmetServiceTest |
17 | 7 | 2 | 8 | TEST REPORT BACKEND predmeti |
PredmetMapperTest |
3 | 2 | 1 | 0 | TEST REPORT BACKEND predmeti |
PredmetControllerTest |
11 | 6 | 0 | 5 | TEST REPORT BACKEND predmeti |
AuthControlerTest |
5 | 1 | 2 | 2 | TEST REPORT BACKEND auth |
UserServiceTest |
2 | 0 | 0 | 2 | TEST REPORT BACKEND auth |
GeminiServiceTest |
6 | 3 | 2 | 1 | TEST REPORT BACKEND ai |
AiControllerTest |
4 | 2 | 2 | 0 | TEST REPORT BACKEND ai |
QuizServiceTest |
45 | 24 | 8 | 13 | TEST REPORT BACKEND quiz |
QuizControllerTest |
31 | 17 | 0 | 14 | TEST REPORT BACKEND quiz |
ObvestiloServiceTest |
11 | 8 | 4 | 0 | TEST REPORT BACKEND notifications |
ObvestiloControllerTest |
6 | 4 | 2 | 0 | TEST REPORT BACKEND notifications |
VpisServiceTest |
18 | 9 | 3 | 6 | TEST REPORT BACKEND vpis |
VpisControllerTest |
16 | 9 | 3 | 4 | TEST REPORT BACKEND vpis |
IzvornaDatotekaServiceTest |
7 | 4 | 1 | 2 | TEST REPORT BACKEND izvorna datoteka |
IzvornaDatotekaControllerTest |
13 | 7 | 2 | 4 | TEST REPORT BACKEND izvorna datoteka |
LearnSmartApplicationTests |
1 | 1 | 0 | 0 | — |
| Skupaj | 206 | 104 | 32 | 61 |
Skupaj testov: 206
✅ Pravilen: 104 (50%)
⚠️ Robni: 32 (16%)
❌ Napačen: 61 (30%)
| Področje | Testov | Delež |
|---|---|---|
| Upravljanje modulov | 31 | 15% |
| Avtentikacija in registracija | 7 | 3% |
| AI klasifikacija | 10 | 5% |
| Upravljanje kvizov | 76 | 37% |
| Obvestila | 17 | 8% |
| Vpisi | 34 | 17% |
| Izvorne datoteke | 20 | 10% |
| Aplikacijski test | 1 | 1% |
| Oznaka | Pomen | Primer |
|---|---|---|
| Pravilen primer | Normalen potek — vse deluje kot pričakovano | Učitelj ustvari modul, API vrne 200 |
| Robni primer | Mejni pogoji — prazni podatki, null vrednosti | Nov učitelj brez modulov dobi prazen seznam |
| Napačen primer | Napačni vhodi ali kršitev pravil | Učenec poskusi ustvariti modul → 403 |
| Tveganje | Pokrito | Kako |
|---|---|---|
| Nepooblaščen dostop do modulov | ✅ | Testi za vsak endpoint z vlogo ucenec
|
| Urejanje tujega modula | ✅ | update/delete/publish_throwsWhenWrongOwner |
| Neobstoječ modul | ✅ |
*_throwsWhenNotFound testi |
| Nedosegljiv Supabase | ✅ |
UserService in AuthControler testi |
| Napaka Gemini API | ✅ |
classify_fallsBackToCount* testi |
| Null vrednosti v JWT | ✅ |
getCurrentUser_handlesNull* testi |
| Anonimni AI klic | ✅ | classifyStyle_skipsPersistedWhenJwtNull |
| Generiranje brez transkripta | ✅ | generiraj_throwsWhenNoTranscript |
| Nepooblaščen dostop do kvizov | ✅ | Testi za vsak endpoint z vlogo ucenec
|
| Napačni odgovori v kvizu | ✅ | shraniRezultat_calculatesZeroWhenAllWrong |
| Kviz brez vprašanj | ✅ | shraniRezultat_handlesEmptyQuiz |
| Prekoračitev lestvice | ✅ | getTopStudents_limitsToFive |
| Dvojni vpis učenca | ✅ | vpisZKodo_throwsWhenAlreadyEnrolled |
| Napačna koda vpisa | ✅ | vpisZKodo_throwsWhenInvalidCode |
| Manjkajoče obvestilo | ✅ | oznaciPrebrano_doesNothingWhenNotFound |
| Obvestilo ob vpisu | ✅ | vpisZKodo_sendsNotificationToProfessor |
| Obvestilo ob objavi kviza | ✅ | objavi_sendsNotificationsToStudents |
| Obvestilo ob objavi modula | ✅ | publish_sendsNotificationsToStudents |
| Nepooblaščen dostop do statistik | ✅ | getWeeklyStats_studentGets403 |
| Profesor brez modulov — statistike | ✅ | getWeeklyStats_returnsEmptyWeekWhenNoModules |
| Prekoračitev aktivnosti | ✅ | getActivity_limitsToTen |
| Napredek brez rezultatov | ✅ | getProgressStats_returnsEmptyWhenNoResults |
| Reaktivacija neaktivnega vpisa | ✅ | vpisZKodo_reactivatesInactiveEnrollment |
| Odjava brez aktivnega vpisa | ✅ | odjava_throwsWhenNotEnrolled |
| Posodabljanje časa brez vpisa | ✅ | posodobiCas_throwsWhenNotEnrolled |
| Brisanje tuje datoteke | ✅ | deleteFile_throwsWhenWrongOwner |
| Brisanje neobstoječe datoteke | ✅ | deleteFile_throwsWhenFileNotFound |
| Duplikat datoteke pri nalaganju | ✅ | upload_returnsErrorWhenDuplicateFile |
| Nalaganje datoteke v tuj modul | ✅ | upload_returns403WhenWrongOwner |
- TEST REPORT BACKEND predmeti — Moduli, mapper, controller
- TEST REPORT BACKEND auth — Avtentikacija, registracija, učni stil
- TEST REPORT BACKEND ai — Gemini AI klasifikacija
- TEST REPORT BACKEND quiz — Kvizi, vprašanja, rezultati, dashboard statistike
- TEST REPORT BACKEND notifications — Obvestila, vpisi
- TEST REPORT BACKEND vpis — Vpisi, odjave, stil mix
- TEST REPORT BACKEND izvorna datoteka — Izvorne datoteke, nalaganje, hash
https://github.com/Kyuhisan/LearnSmart/tree/main/Backend/src/test/java/com/learnSmart/learnSmart