Ответ вслух Junior Тест-кейсы для API спрашивают часто обновлено

Как протестировать POST /users

Вопрос

Есть эндпоинт POST /users с полями email, password, name, age. Какие проверки ты сделаешь?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Начну с позитива: создаю пользователя с минимальным набором обязательных полей и с полным, жду 201, Location, в теле id и данные, а в базе запись с правильными полями. Дальше обязательность и типы: убираю каждое обязательное поле по очереди, шлю null, строку вместо числа, жду 400 или 422 с указанием поля, а не 500.

Что должно прозвучать в ответе

  • Позитив: минимальный набор полей и полный, 201, Location, тело, запись в БД

  • Обязательность и типы: нет поля, null, неверный тип: 400/422 с понятной ошибкой

  • Границы и форматы: длины, возраст на границах, неверный email, пробелы, эмодзи

  • Бизнес-правила: дубль email (409), регистр email, пароль не возвращается в ответе

  • Безопасность и надёжность: без авторизации, лишние поля (role), повтор и параллельные запросы

Что могут спросить следом

  • Как проверишь, что пароль хранится не открытым текстом?
  • Что вернуть на Anna@Mail.ru, если есть anna@mail.ru?
  • Как автоматизируешь эти проверки?

Разбор

Начну с позитива: создаю пользователя с минимальным набором обязательных полей и с полным, жду 201, Location, в теле id и данные, а в базе запись с правильными полями. Дальше обязательность и типы: убираю каждое обязательное поле по очереди, шлю null, строку вместо числа, жду 400 или 422 с указанием поля, а не 500. Границы: длина пароля и имени на границах, возраст 0, отрицательный, нереальный, email без собаки, с пробелами по краям, кириллица и эмодзи в имени. Бизнес-правила: повторная регистрация того же email даёт 409, причём проверяю и вариант в другом регистре, пароль никогда не возвращается в ответе, а в базе лежит хеш. Безопасность: пробую добавить role admin в тело, это mass assignment, смотрю на лимит частоты. И надёжность: двойной клик, то есть два параллельных одинаковых запроса, не должен создавать двух пользователей. Позитив и ключевой негатив автоматизирую, остальное держу в чек-листе.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме