Сначала проверю пустую корзину, корректную корзину с товарами и скидками, а также изоляцию корзин разных пользователей. Для расчётов заранее уточню смысл discount и правила округления.
Есть handler для получения информации о текущей корзине пользователя. Ниже представлена структура ответа из swagger. Какие 3 бизнес сценария ты проверил бы в первую очередь?
Сначала проверю пустую корзину, корректную корзину с товарами и скидками, а также изоляцию корзин разных пользователей. Для расчётов заранее уточню смысл discount и правила округления.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Есть handler для получения информации о текущей корзине пользователя. Ниже представлена структура ответа из swagger. Какие 3 бизнес сценария ты проверил бы в первую очередь?
- ручка вызывается залогиненным в систему пользователем
- у тебя есть доступ к базе данных микросервиса
Request GET /user/cart
Response { "items": [ { "item_id": "integer", "item_name": "string", "item_price": "number", "quantity": "integer", "discount": "number" } ], "total_price": "number", "total_discount": "number", "final_price": "number" }
Ответ
Сначала проверю пустую корзину, корректную корзину с товарами и скидками, а также изоляцию корзин разных пользователей. Для расчётов заранее уточню смысл discount и правила округления.
- У нового пользователя
itemsпуст, суммы соответствуют контракту, ошибки нет. - Несколько товаров с разным количеством и скидками дают согласованные
total_price,total_discount,final_price; значения сверяются с подготовленными данными и утверждённой формулой. - Два авторизованных пользователя получают только собственные корзины.
Нельзя автоматически считать discount процентом или денежной суммой: схема задаёт лишь тип. Доступ к БД помогает подготовить и проверить состояние, но не заменяет проверку ответа API.