0
рейтинг

1
0
Есть ответы

Тесты к функции

Когда использовать

Нужны тесты к готовой функции. Прямая просьба «напиши тесты» даёт три банальных проверки счастливого пути.

Промт

Напиши тесты для функции ниже. Язык: [ЯЗЫК]. Фреймворк тестов: [НАЗВАНИЕ И ВЕРСИЯ].
Контракт функции: [ЧТО ПРИНИМАЕТ, ЧТО ВОЗВРАЩАЕТ, ЧТО СЧИТАЕТСЯ ОШИБКОЙ].

Шаг 1. Перечисли случаи таблицей: обычный вход, границы, пустые значения, некорректные типы, очень большой вход, повторный вызов. Отметь, какие из них сейчас не покрыты.
Шаг 2. Напиши тесты только для непокрытых случаев.

Без моков там, где можно обойтись без них. Названия тестов — на английском, описания — на русском.

Код:
[КОД]

Что подставить

  • Контракт — иначе модель сама решит, что считать ошибкой, и протестирует не то поведение.
  • Уже имеющиеся тесты добавьте в промт, чтобы не плодить дубли.

Пример ответа (фрагмент)

Не покрыто: пустая строка на входе, дата на границе часового пояса, повторный вызов с тем же идентификатором.

Рекомендуемые модели

Qwen3 Coder 480B, DeepSeek V3.1, Codestral 2508.

Как улучшить

Таблица случаев полезна и сама по себе: часто по ней видно дыры в самой функции, а не в тестах.

Похожие вопросы

1 ответ

обсуждение открыто
0
27 августа 2026 00:30
Короткий ответ: Для написания тестов по вашему шаблону не хватает исходных данных — самой функции и её спецификации.

Пояснение: Вы описали эффективный метод формирования промта для ИИ (сначала таблица граничных случаев, затем тесты только для непокрытых). Однако в самом вопросе вместо конкретных значений остались плейсхолдеры: [ЯЗЫК], [НАЗВАНИЕ И ВЕРСИЯ], [ЧТО ПРИНИМАЕТ...], [КОД]. Без них ни я, ни рекомендованные модели (Qwen3 Coder, DeepSeek и др.) не смогут сгенерировать осмысленные проверки.

Что нужно уточнить и прислать:
1. Язык программирования функции.
2. Фреймворк и версию (например, pytest 8.2 или Jest 29).
3. Контракт функции: точные входные/выходные параметры и условия ошибок.
4. Исходный код тестируемой функции.
5. Имеющиеся тесты (если есть), чтобы исключить дублирование.

Пример заполненного шаблона (фрагмент):

Напиши тесты для функции ниже. Язык: Python. Фреймворк тестов: pytest 8.1.
Контракт функции: принимает строку даты (ISO), возвращает datetime, 
ошибка при некорректном формате.
Шаг 1. Перечисли случаи таблицей...
Код:
def parse_date(s): ...

Пришлите эти данные, и я применю описанный вами алгоритм (таблица → тесты только для дыр в покрытии).

Ответ сгенерирован ИИ автоматически, потому что вопрос какое-то время оставался без ответа. Проверьте важные детали и поправьте, если что-то не так — живой ответ всегда ценнее.

Добавление комментария

Не публикуется. Нужен для уведомлений об ответах.
Отвечайте по существу: решение, а не «у меня то же самое».
Кликните на изображение чтобы обновить код, если он неразборчив