Senior
Ο τρόπος πραγματοποιεί μια παραγγελία στον ιστότοπο. Δέχεται: 1 Λίστα αποστολών με προϊόντα 2 Αναμενόμενη ημερομηνία παραλαβής για κάθε αποστολή 3 Διεύθυνση παραλαβής με σχόλια 4 Μέθοδος πληρωμής, π.χ., τραπεζική κάρτα. Ο περιορισμός μήκους για address.comment είναι 200 χαρακτήρες Ο περιορισμός μήκους για shipments είναι 200 αντικείμενα Πρέπει να δοκιμαστεί αυτή η μέθοδος (να δημιουργηθεί μια λίστα ελέγχου ελέγχων). POST /order { "shipments": [ // αποστολές/κουτιά με προϊόντα { "id": "number", "date": "number" // Αναμενόμενη ημερομηνία παράδοσης } ], "adress": { "id": "number", "comment": "string", "is_leave_at_door": "boolean" // αφήστε στην πόρτα }, "payment_method": "string" # card / apple_pay }
sobes.tech AI
Απάντηση από AI
Чек-лист тестирования метода POST /order:
-
Валидация входных данных:
- Проверить, что поле
shipmentsприсутствует и содержит не более 200 объектов. - Проверить, что каждый объект в
shipmentsсодержит корректные поляid(число) иdate(число, валидная дата). - Проверить, что поле
adressприсутствует и содержитid(число),comment(строка, не более 200 символов),is_leave_at_door(булево). - Проверить, что поле
payment_methodсодержит допустимые значения (card,apple_pay).
- Проверить, что поле
-
Граничные значения:
- Отправить запрос с 0, 1, 200 и более 200 отправлениями.
- Проверить длину
adress.commentна 0, 200 и более 200 символов.
-
Формат и типы данных:
- Передать неверные типы данных (строка вместо числа, число вместо булева).
- Отправить пустые или отсутствующие поля.
-
Логика обработки:
- Проверить, что заказ создаётся корректно при валидных данных.
- Проверить поведение при невалидных данных (ожидается ошибка с понятным сообщением).
-
Безопасность:
- Проверить защиту от SQL-инъекций в полях
commentи других. - Проверить, что метод требует авторизации, если это предусмотрено.
- Проверить защиту от SQL-инъекций в полях
-
Производительность:
- Проверить время отклика при максимальном количестве отправлений.
-
Дополнительные проверки:
- Проверить, что поле
is_leave_at_doorкорректно влияет на логику доставки.
- Проверить, что поле
Пример теста на длину комментария:
{
"shipments": [{"id": 1, "date": 1686000000}],
"adress": {"id": 10, "comment": "a".repeat(201), "is_leave_at_door": true},
"payment_method": "card"
}
Ожидается ошибка из-за превышения лимита в 200 символов.