Зафиксируйте ожидания потребителя в контракте и проверяйте новую версию провайдера против него в CI. Интеграционный тест должен проверять не только JSON-схему, но и смысл полей и ошибок.
Вы упомянули важность обратной совместимости и версионирования API. Можете привести пример, как вы реализуете контрактные интеграционные тесты для проверки таких изменений?
Зафиксируйте ожидания потребителя в контракте и проверяйте новую версию провайдера против него в CI. Интеграционный тест должен проверять не только JSON-схему, но и смысл полей и ошибок.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Зафиксируйте ожидания потребителя в контракте и проверяйте новую версию провайдера против него в CI. Интеграционный тест должен проверять не только JSON-схему, но и смысл полей и ошибок.
Например, старый клиент ожидает amount как число: тест прежнего запроса на новом сервере должен сохранить формат и единицы измерения. Добавьте случаи отсутствующих необязательных полей, неверного ввода и авторизации. Проверяйте поддерживаемые версии клиентов; внешний платёжный сервис подменяйте. Несовместимый контракт требует миграционного периода или новой версии, а не обновления теста под случайную поломку.