Middle
Můžeš uvést příklad, jak bys vybíral testovací případy pro PUT požadavek?
sobes.tech AI
Odpověď od AI
Vybral bych testovací případy na základě následujícího:
-
Úspěšná aktualizace:
- Aktualizace všech polí platnými hodnotami.
- Aktualizace jednoho nebo více polí s ponecháním ostatních beze změny.
- Aktualizace polí s hraničními hodnotami (pokud je to relevantní).
-
Neúspěšná aktualizace (negativní testy):
- Neplatná data:
- Nesprávný formát dat pro pole (například řetězec místo čísla).
- Hodnoty přesahující maximální délku nebo mimo povolený rozsah.
- Chybějící povinná pole v těle požadavku.
- Neexistující zdroj:
- PUT požadavek s ID, které neexistuje v systému.
- Konflikt dat:
- Pokus o aktualizaci zdroje, který byl změněn jiným uživatelem (pokud je použit mechanismus verzování nebo blokování).
- Nedostatek práv:
- Pokus o aktualizaci zdroje bez odpovídajících oprávnění.
- Validační chyby:
- Porušení obchodní logiky nebo omezení databáze (například duplicitní unikátní hodnota).
- Nesprávný Content-Type:
- Odeslání požadavku s Content-Type odlišným od očekávaného (například
text/plainmístoapplication/json).
- Odeslání požadavku s Content-Type odlišným od očekávaného (například
- Prázdné tělo požadavku:
- Odeslání požadavku bez těla.
- Neplatná data:
-
Hraniční podmínky:
- Aktualizace zdroje s minimálním počtem polí (pokud je to povoleno).
- Aktualizace zdroje s maximálním počtem polí.
- Kontrola chování při předání v těle požadavku dalších, neočekávaných polí.
Příklad struktury testovacích případů:
| Případ | Popis | Očekávaný výsledek |
|---|---|---|
| Úspěšná aktualizace | Aktualizace všech polí s korektními hodnotami. | 200 OK / 204 No Content (záleží na API) |
| Neexistující ID | Pokus o aktualizaci zdroje s ID, které neexistuje. | 404 Not Found |
| Neplatný formát dat | Pokus o aktualizaci pole typu číslo řetězcem. | 400 Bad Request |
| Chybějící povinné pole | Chybějící v těle požadavku pole označené jako povinné. | 400 Bad Request |
| Nedostatek práv | Pokus o aktualizaci zdroje uživatelem bez potřebných práv. | 403 Forbidden |
Pro automatizaci bych použil frameworky jako RestAssured (Java), Requests (Python) nebo Supertest (Node.js) a nástroje pro generaci testovacích dat.