Middle
Môžeš uviesť príklad, ako by si vybral testovacie prípady pre požiadavku PUT?
sobes.tech AI
Odpoveď od AI
Vybral by som testovacie prípady na základe nasledujúceho:
-
Úspešná aktualizácia:
- Aktualizácia všetkých polí platnými hodnotami.
- Aktualizácia jedného alebo viacerých polí s ponechaním ostatných bez zmeny.
- Aktualizácia polí s hraničnými hodnotami (ak je to relevantné).
-
Neúspešná aktualizácia (negatívne testy):
- Neplatné údaje:
- Nesprávny formát údajov pre polia (napríklad reťazec namiesto čísla).
- Hodnoty presahujúce maximálnu dĺžku alebo mimo povolený rozsah.
- Chýbajúce povinné polia v tele požiadavky.
- Neexistujúci zdroj:
- PUT požiadavka s ID, ktoré neexistuje v systéme.
- Konflikt údajov:
- Pokus o aktualizáciu zdroja, ktorý bol zmenený iným používateľom (ak sa používa mechanizmus verzionovania alebo blokovania).
- Nedostatok práv:
- Pokus o aktualizáciu zdroja bez príslušných práv.
- Validačné chyby:
- Porušenie obchodnej logiky alebo obmedzení databázy (napríklad duplikácia unikátnej hodnoty).
- Nesprávny Content-Type:
- Odoslanie požiadavky s Content-Type odlišným od očakávaného (napríklad
text/plainnamiestoapplication/json).
- Odoslanie požiadavky s Content-Type odlišným od očakávaného (napríklad
- Prázdne telo požiadavky:
- Odoslanie požiadavky bez tela.
- Neplatné údaje:
-
Hraničné podmienky:
- Aktualizácia zdroja s minimálnym počtom polí (ak je to povolené).
- Aktualizácia zdroja s maximálnym počtom polí.
- Kontrola správania pri odoslaní v tele požiadavky ďalších, neočakávaných polí.
Príklad štruktúry testovacích prípadov:
| Prípad | Popis | Očakávaný výsledok |
|---|---|---|
| Úspešná aktualizácia | Aktualizácia všetkých polí s korektnými hodnotami. | 200 OK / 204 No Content (závisí od API) |
| Neexistujúce ID | Pokus o aktualizáciu zdroja s ID, ktoré neexistuje. | 404 Not Found |
| Neplatný formát údajov | Pokus o aktualizáciu poľa typu číslo reťazcom. | 400 Bad Request |
| Chýbajúce povinné pole | Chýbajúce v tele požiadavky pole označené ako povinné. | 400 Bad Request |
| Nedostatok práv | Pokus o aktualizáciu zdroja používateľom bez potrebných práv. | 403 Forbidden |
Na automatizáciu by som použil rámce ako RestAssured (Java), Requests (Python) alebo Supertest (Node.js) a nástroje na generovanie testovacích dát.