Ответ
При тестировании API я документирую и проверяю методы, используя спецификацию OpenAPI (Swagger). Для метода создания сущности (POST) я описываю следующие ключевые аспекты:
1. Структура запроса и ответа в OpenAPI:
paths:
/api/cats:
post:
summary: "Создание новой записи о коте"
tags:
- "Cats"
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CatRequest'
responses:
'201':
description: "Кот успешно создан"
content:
application/json:
schema:
$ref: '#/components/schemas/CatResponse'
'400':
description: "Невалидные входные данные"
'409':
description: "Конфликт (например, кот с таким именем уже существует)"
2. Схемы данных, которые я проверяю в тестах:
components:
schemas:
CatRequest:
type: object
required:
- name
- age
properties:
name:
type: string
example: "Барсик"
age:
type: integer
minimum: 0
maximum: 30
example: 3
breed:
type: string
example: "Мейн-кун"
CatResponse:
allOf:
- $ref: '#/components/schemas/CatRequest'
- type: object
properties:
id:
type: integer
readOnly: true
example: 42
createdAt:
type: string
format: date-time
3. Ключевые проверки, которые я выполняю как тестировщик:
- Валидация схемы: Соответствие JSON-тела запроса схеме
CatRequest. - Обязательные поля: Отправка запроса без
nameилиageдолжна возвращать 400. - Граничные значения: Проверка валидации поля
age(отрицательные числа, нецелые значения). - Уникальность: Попытка создать дубликат (по
name) должна возвращать 409. - Заголовки ответа: Проверка, что успешный ответ (201) содержит заголовок
Location: /api/cats/{id}. - Состояние системы: После успешного POST-запроса GET-запрос на
/api/cats/{id}должен возвращать созданную сущность.