Sobes.tech
Middle

Можеш ли дати пример како би изабрао тест случајеве за PUT захтев?

sobes.tech АИ

Одговор од АИ

Izbiraću test slučajeve na osnovu sledećeg:

  • Uspešna ažuriranja:

    • Ažuriranje svih polja validnim vrednostima.
    • Ažuriranje jednog ili više polja, ostavljajući ostala nepromenjena.
    • Ažuriranje polja sa graničnim vrednostima (ako je primenjivo).
  • Neuspešna ažuriranja (negativni testovi):

    • Nevažeći podaci:
      • Neispravan format podataka za polja (npr. niz umesto broja).
      • Vrednosti koje premašuju maksimalnu dužinu ili su van dozvoljenog opsega.
      • Nedostatak obaveznih polja u telu zahteva.
    • Nepostojeći resurs:
      • PUT zahtev sa ID-jem koji ne postoji u sistemu.
    • Sukob podataka:
      • Pokušaj ažuriranja resursa koji je izmenjen od strane drugog korisnika (ako se koristi mehanizam verzionisanja ili blokiranja).
    • Nedostatak prava:
      • Pokušaj ažuriranja resursa bez odgovarajućih prava.
    • Validacioni problemi:
      • Kršenje poslovne logike ili ograničenja baze podataka (npr. dupliranje jedinstvene vrednosti).
    • Pogrešan Content-Type:
      • Slanje zahteva sa Content-Type koji se razlikuje od očekivanog (npr. text/plain umesto application/json).
    • Prazno telo zahteva:
      • Slanje zahteva bez tela.
  • Granični uslovi:

    • Ažuriranje resursa sa minimalnim skupom polja (ako je dozvoljeno).
    • Ažuriranje resursa sa maksimalnim skupom polja.
    • Provera ponašanja pri slanju u telu zahteva dodatnih, neočekivanih polja.

Primer strukture test slučajeva:

Slučaj Opis Očekivani rezultat
Uspešna ažuriranja Ažuriranje svih polja sa ispravnim vrednostima. 200 OK / 204 No Content (zavisi od API-ja)
Nepostojeći ID Pokušaj ažuriranja resursa sa ID-jem koji ne postoji. 404 Not Found
Nevažeći format podataka Pokušaj ažuriranja polja tipa broj sa nizom. 400 Bad Request
Nedostaje obavezno polje Nedostatak u telu zahteva polja označenog kao obavezno. 400 Bad Request
Nedostatak prava Pokušaj ažuriranja resursa od strane korisnika bez potrebnih prava. 403 Forbidden

Za automatizaciju bih koristio okvire poput RestAssured (Java), Requests (Python) ili Supertest (Node.js) i alate za generisanje test podataka.