Sobes.tech
Назад к вопросам
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 }

Компании, где спрашивали
OZONOZON

Ответ от нейросети

sobes.tech AI

Чек-лист тестирования метода POST /order:

  1. Валидация входных данных:

    • Проверить, что поле shipments присутствует и содержит не более 200 объектов.
    • Проверить, что каждый объект в shipments содержит корректные поля id (число) и date (число, валидная дата).
    • Проверить, что поле adress присутствует и содержит id (число), comment (строка, не более 200 символов), is_leave_at_door (булево).
    • Проверить, что поле payment_method содержит допустимые значения (card, apple_pay).
  2. Граничные значения:

    • Отправить запрос с 0, 1, 200 и более 200 отправлениями.
    • Проверить длину adress.comment на 0, 200 и более 200 символов.
  3. Формат и типы данных:

    • Передать неверные типы данных (строка вместо числа, число вместо булева).
    • Отправить пустые или отсутствующие поля.
  4. Логика обработки:

    • Проверить, что заказ создаётся корректно при валидных данных.
    • Проверить поведение при невалидных данных (ожидается ошибка с понятным сообщением).
  5. Безопасность:

    • Проверить защиту от SQL-инъекций в полях comment и других.
    • Проверить, что метод требует авторизации, если это предусмотрено.
  6. Производительность:

    • Проверить время отклика при максимальном количестве отправлений.
  7. Дополнительные проверки:

    • Проверить, что поле 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 символов.