Назад к вопросам
OZON
Senior
10
Метод оформляет заказ на сайте. На вход принимает: 1 Список отправлений с товарами 2 Ожидаемую дату получения для каждого отправления 3 Адрес получения с комментариями 4 Платежный метод, например банковскую карту. лимит на длину adress.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
Чек-лист тестирования метода 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 символов.