Главная · Каталог задач · Тесты на существующий код

Готовый сценарий

Тесты на существующий код

Тесты на существующий код должны защищать нужное поведение, даже если реализация уже содержит ошибку. Приложите функцию и правила, которые она обязана выполнять. Енотик поможет выбрать обычные, граничные и ошибочные входы. Например, для скидки от суммы 1000 нужно отдельно проверить 999, 1000 и 1001: тест только на большой сумме не заметит неверный знак сравнения на самом пороге применения скидки.

Попробуйте прямо здесь Отвечает Gemma 3 12B — модель подобрал сервис

Открыть в полном чате

  • Доступ без VPN
  • Русский интерфейс
  • Оплата рублями по факту

Зачем

Зачем это нужно

01

Запишите бизнес-правило отдельно от кода, чтобы тест не закреплял случайный дефект.

02

Для каждой границы задайте ожидаемое значение и поведение при неверном вводе.

03

Проверьте, что изменение значимого условия действительно делает тест красным.

Вопросы

Частые вопросы

Как выглядит запрос на содержательные тесты?

«Учебная функция принимает целое число единиц. С 1000 включительно действует скидка 10%; дробный итог округляется вниз. Для 999 ожидаю 999, для 1000 — 900, для 1001 — 900. Отрицательный вход вызывает ошибку». Передайте реализацию отдельно и попросите тесты по этому контракту. Условия примера учебные, их нельзя молча переносить в реальный денежный расчёт.

Когда нужны моки, а когда настоящий код?

Внешний HTTP-запрос можно заменить управляемым ответом, чтобы проверить таймаут и отказ. Но подмена самой тестируемой функции доказывает лишь работу заглушки. Если цель — проверить SQL, ограничения или транзакцию, потребуется интеграционный тест с базой. Попросите явно перечислить границы подмен и назвать поведение, которое остаётся непроверенным в предложенном наборе тестов для вашего модуля.

Как понять, что assertions действительно полезны?

Временно измените порог скидки с «не меньше» на «больше» в учебной копии: проверка суммы 1000 должна упасть. Аналогично попробуйте убрать валидацию отрицательного значения. Это проверка чувствительности набора, а не повод исправлять ожидаемый ответ под реализацию. После эксперимента верните код и прогоните тесты снова, сохранив лог исходного и изменённого поведения функции.

Сколько сценариев просить за один раз?

Начните с таблицы классов входов: ниже порога, на пороге, выше, недопустимое значение. Для сложной функции добавьте комбинации, влияющие на результат, вместо десятков похожих примеров. Укажите тестовый фреймворк и его версию. Чат подготовит код, но не подтвердит зелёный прогон в вашем проекте; запустите проверки и присылайте конкретный отказ с ожидаемым результатом.

Рядом

Дальше — весь каталог задач: поиск по названию, темы и фильтры.

Нужно больше

Весь Енотик — в одном окне

Полный чат: история, вложения, базы знаний, картинки и видео. Один баланс на все модели, оплата рублями по факту.