Middle
მოყევი მაგალითი, როგორ შეარჩევდი ტესტის შემთხვევებს PUT-სთვის.
sobes.tech AI
პასუხი AI-სგან
PUT მოთხოვნისთვის ტესტ-კეისების არჩევისას მე დავიცავდი შემდეგ პრინციპებს:
-
პოზიტიური სენარიოები:
- წარმატებით სრული განახლება არსებული რესურსის ვალიდური მონაცემებით.
- წარმატებით ნაწილობრივი განახლება არსებული რესურსის (თუ API ამას უჭერს მხარს).
- რესურსის განახლება ზღვრული მნიშვნელობების გამოყენებით.
-
ნეგატიური სენარიოები:
- რესურსის არარსებობა მითითებულ ID-ით.
- არავალიდური ფორმატი ID-ისთვის.
- არავალიდური მონაცემთა ტიპი მოთხოვნის ველებში.
- აუცილებელი ველების არარსებობა მოთხოვნის სხეულში.
- არავალიდური ფორმატი მოთხოვნის სხეულისთვის (მაგ. არა JSON).
- მცდელობა განაახლოს ველები, რომლებიც არ უნდა განახლდეს (მაგ. ID, შექმნის თარიღი).
- არასაკმარისი უფლებები რესურსის განახლებისთვის.
- კონკურენტული განახლება რესურსზე.
-
ზღვრული პირობები:
- მაქსიმალური დაშვებული მნიშვნელობები ციფრულ ველებში.
- ცარიელი სტრინგები სტრინგულ ველებში (თუ ეს დაშვებულია).
- სპეციალური სიმბოლოები სტრინგულ ველებში.
- გრძელი სტრინგები სტრინგულ ველებში.
-
პარალელური ეფექტების შემოწმება:
- სხვა დაკავშირებული რესურსების ცვლილება განახლების შემდეგ.
- განახლებული მონაცემების სწორად ჩვენება სხვა სისტემის ნაწილებში.
მაგალითის სტრუქტურა ტესტ-კეისებისთვის (რესურსი user და ველები id, name, email):
| TestCase ID | აღწერა | მოთხოვნის URL | მოთხოვნის სხეული | მოსალოდნელი სტატუს კოდი | მოსალოდნელი პასუხის სხეული/ქცევა |
|---|---|---|---|---|---|
| PUT_USR_001 | წარმატებული სრული განახლება | /users/123 |
{"name": "New Name", "email": "new@example.com"} |
200 | განახლებული მომხმარებლის მონაცემები |
| PUT_USR_002 | მომხმარებელი არ მოიძებნა | /users/999 |
{"name": "New Name"} |
404 | შეცდომის შეტყობინება, რომ მომხმარებელი არ მოიძებნა |
| PUT_USR_003 | არავალიდური ელფოსტის ფორმატი | /users/123 |
{"email": "invalid-email"} |
400 | შეცდომის შეტყობინება, რომ ელფოსტის ფორმატი არავალიდურია |
| PUT_USR_004 | აუცილებელი ველის არარსებობა | /users/123 |
{} |
400 | შეცდომის შეტყობინება, რომ ველი არ არის მითითებული |
| PUT_USR_005 | მაქსიმალური ზღვრული მნიშვნელობით განახლება | /users/123 |
{"name": "A" * 255} |
200 | გრძელი სახელით განახლებული მონაცემები |
| PUT_USR_006 | განახლების აკრძალული ველის განახლება | /users/123 |
{"id": 456, "name": "New Name"} |
400/403 | შეცდომის შეტყობინება, რომ განახლება აკრძალულია ან სთხოვა არასწორია |
რა თქმა უნდა, კონკრეტული ტესტ-კეისების რაოდენობა დამოკიდებულია API-ის სპეციფიკაციაზე, ბიზნეს ლოგიკაზე და სისტემის არქიტექტურაზე.