Из ответа пропало поле, автотесты зелёные, мобильный клиент упал: какую проверку внедрять
Автотест на карточку заказа проверяет три поля точечными утверждениями:
body = requests.get(f"{BASE_URL}/orders/1042", headers=AUTH).json()
assert body["id"] == 1042
assert body["status"] == "NEW"
assert body["total_price"] == 1500
В релизе бэкенд перестал отдавать поле delivery_date. Автотесты остались зелёными, мобильное приложение на проде упало при открытии заказа.
Что внедрить, чтобы такие изменения ловились до прода?
- Валидацию ответа целиком по модели или схеме (Pydantic, JSON Schema) с запуском в пайплайне на каждый merge request
- Дописать в каждый тест утверждение на каждое поле ответа вручную и следить за полнотой списка на ревью
- Сверять ответ с эталонным JSON-файлом целиком, включая идентификаторы, суммы и метки времени
- Договориться, что бэкенд-разработчики пишут об изменениях ответа в командный чат за спринт до выката
