Разработка

Промпт для Unit-тестов

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

Обновлено: 2026-10-09

Промпт

Напиши Unit-тесты для функции по указанному контракту.

Язык, раннер и версии: [данные]. Функция: [код].
Контракт: [входы, выходы, ошибки]. Побочные эффекты: [данные].

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

Соберите свой промпт

Ответьте на вопросы. Промпт собирается бесплатно прямо здесь. Незаполненные места можно дополнить позже.

Открыть в конструкторе →

Можно пропустить: в промпте останется место для ваших данных.

Можно пропустить: в промпте останется место для ваших данных.

Можно пропустить: в промпте останется место для ваших данных.

Необязательное уточнение к исходному промпту.

Необязательное уточнение к исходному промпту.

Необязательное уточнение к исходному промпту.

Живой предпросмотр

Подставленное выделено зелёным, незаполненное — пунктиром.

Напиши Unit-тесты для функции по указанному контракту.

Язык, раннер и версии: [данные]. Функция: [код].
Контракт: [входы, выходы, ошибки]. Побочные эффекты: [данные].

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

Ответы остаются на этой странице и исчезают при перезагрузке. В ссылке — только выбранная задача.

Шаблон + ваши данные

Нужно много вариантов этого промпта?

Подготовьте таблицу компонентов, требований и окружений. Promptada соберёт текстовые задания по одному шаблону и передаст пакет выбранной модели.

Создать аккаунт

Как пользоваться

  1. Подготовьте язык, раннер и версии, функция, контракт, побочные эффекты.
  2. Задайте ожидания Unit-тестов по контракту, а не коду.
  3. Запустите clamp тесты и проверьте отказ версии, не ограничивающей верхнюю границу.
  4. Дополни тесты clamp значением на верхней границе; ожидание задать константой, не повторять алгоритм реализации.

Для каких нейросетей

Нейросеть Версия Насколько подходит Примечание
GPT 6 Astra Подходит Сложные условия
GPT 6.1 Sol Подходит Основной текстовый вариант
GPT 6 Luna Подходит Короткая выдача
Claude Fable 5.1 Подходит Много ограничений
Claude Opus 5.5 Подходит Развёрнутый разбор
Claude Sonnet 5.5 Подходит Редактура и сравнение
Claude Haiku 5.5 Подходит Компактный формат
Gemini 3.8 Flash Подходит Текст и вложения
Gemini 3.1 Pro Preview Подходит Preview; подробный анализ
DeepSeek V4.1-Flash Подходит Текст; изображения
DeepSeek V4-Pro-0813 Подходит Только текст

Справочные данные для Unit-тестов: GPT, Claude, Gemini, Gemini, DeepSeek.

Пример результата

Контракт: Python clamp(x, lo, hi) ограничивает число диапазоном, lo > hi вызывает ValueError. Готовые тесты pytest:

import pytest
from limits import clamp

def test_clamp_inside():
    assert clamp(5, 0, 10) == 5

def test_clamp_edges():
    assert clamp(-1, 0, 10) == 0
    assert clamp(11, 0, 10) == 10
    assert clamp(0, 0, 10) == 0

def test_invalid_range():
    with pytest.raises(ValueError):
        clamp(5, 10, 0)

Как улучшить результат

  • Задайте ожидания Unit-тестов по контракту, а не коду.
  • Назовите раннер и структуру импорта тестируемой функции.
  • Покройте границы диапазона и неверное отношение lo-hi.
  • Проверьте, что намеренно сломанная версия действительно падает.

Варианты промпта

Узкая задача

Напиши три pytest-теста для clamp: внутри диапазона, ниже нижней границы, неверный диапазон. Ожидания задай константами.

Корректировка: Unit-тестов

Дополни тесты clamp значением на верхней границе; ожидание задать константой, не повторять алгоритм реализации.

Частые ошибки

  • Тест вычисляет ожидание тем же алгоритмом и повторяет баг.
  • Мокают саму проверяемую функцию вместо внешней зависимости.
  • Проверяют покрытие строк, не проверяя обещанное поведение.

Вопросы и ответы

Как написать Unit-тесты?

Дайте контракт и раннер, затем код и правила зависимостей. Сначала запишите вход и ожидаемый выход в таблице; затем превращайте строки в тесты.

Какие сценарии покрыть?

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

Как проверить результат функции?

Запустите тесты своим раннером и убедитесь, что известная неправильная версия падает. Неверная контрольная реализация помогает убедиться, что тест способен обнаружить именно нужную ошибку.

От одного промпта к потоку

Подготовьте пакет технических заданий

Шаблоны и справочники помогают повторно использовать требования. Полученные текстовые ответы можно просмотреть и выгрузить; код проверяйте в своём окружении.

Создать аккаунт