Выбор ответа Middle API-автотесты обновлено

Сравнение с эталонным ответом

Вопрос

Тест сравнивает ответ целиком с сохранённым эталоном и падает каждый запуск. Почему, и как правильно?

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

Выберите вариант, и откроется разбор.

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

Коротко

Правильный ответ: В ответе есть меняющиеся поля (id, createdat), их исключают из сравнения. Генерируемые id, время и токены отличаются каждый раз.

Варианты ответа

  1. Эталон надо перезаписывать перед каждым запуском из текущего ответа
  2. В ответе есть меняющиеся поля (id, created_at), их исключают из сравненияправильный ответ
  3. Сравнивать ответы целиком нельзя: JSON не гарантирует порядок ключей в объекте
  4. Нужно сравнивать длину JSON-строки, а не содержимое, она стабильнее

Разбор

Генерируемые id, время и токены отличаются каждый раз. Их исключают или проверяют формат (UUID, ISO-дата), остальное сравнивают. Обновлять эталон каждый раз значит ничего не проверять, длина строки ничего не говорит о содержании, а сравнение целиком вполне законно при правильной фильтрации (порядок ключей нормальные библиотеки сравнения не учитывают).

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

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

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