Testiranje koda - SirCrayzyJelly/AI_Tutor GitHub Wiki
Testiranje Chat API-ja
Testiranje koda služi za provjeru ispravnosti, stabilnosti i očekivanog ponašanja aplikacije. Omogućuje brzu detekciju grešaka, osigurava da nove promjene ne naruše postojeće funkcionalnosti i olakšava održavanje koda. U ovom projektu testiranjem provjeravamo ispravnost API odgovora, jezične upute i validaciju ulaza.
Pytest
pytest je popularan framework za testiranje u Pythonu koji omogućuje jednostavno pisanje, organiziranje i pokretanje testova. Podržava asinkrone testove, bogat skup dodataka i automatsku detekciju testnih funkcija. Idealno je rješenje za testiranje kako malih skripti, tako i složenih aplikacija.
Implementirani testovi
1. Hrvatski jezik
Naziv testa: test_chat_adds_croatian_prompt
Provjerava dodaje li se automatski hrvatska jezična uputa ako nije eksplicitno navedena.
- Ulaz:
"Hello"
- Očekivani izlaz: odgovor koji uključuje fraze poput
bok
,zdravo
,kako si
assert any(word in text for word in ["bok", "zdravo", "kako", "si"])
2. Prazna poruka
Naziv testa: test_chat_empty_messages_returns_400
Opis: Provjerava ponašanje API-ja kada messages polje sadrži praznu listu.
-
Ulaz: {"messages": []}
-
Očekivano: HTTP status kod 400 i poruka o grešci
assert response.status_code == 400
assert "message list cannot be empty" in response.json()["detail"].lower()
3. Neispravan format poruke
Naziv testa: test_chat_handles_invalid_format Opis: Testira ponašanje kada poruka ne sadrži obavezno polje "content".
Ulaz: {"messages": [{"role": "user"}]}
Očekivano: validacijska greška – status 400 ili 422
assert response.status_code in [400, 422]
Zaključak
Testovi pokrivaju osnovne i kritične funkcionalnosti API-ja vezane uz razumijevanje jezika, obradu grešaka i validaciju podataka. Sustav uspješno prepoznaje kada treba prebaciti odgovor na hrvatski jezik i ponaša se očekivano u slučaju praznog unosa ili neispravne strukture poruke.
Daljnji razvoj trebao bi uključivati dodatne testove za skalabilnost, sigurnost i jezičnu fleksibilnost.