Промпт для Unit-тестов
Промпт пишет Unit-тесты по контракту функции. Ожидаемые значения задаются независимо от реализации, чтобы тесты могли обнаружить ошибку.
Обновлено: 2026-10-09
Промпт
Напиши Unit-тесты для функции по указанному контракту.
Язык, раннер и версии: [данные]. Функция: [код].
Контракт: [входы, выходы, ошибки]. Побочные эффекты: [данные].
Покрой обычный, пустой, граничный и ошибочный ввод. Не повторяй алгоритм функции для расчёта ожиданий. Моки используй только для внешних зависимостей.
Соберите свой промпт
Ответьте на вопросы. Промпт собирается бесплатно прямо здесь. Незаполненные места можно дополнить позже.
Открыть в конструкторе →Можно пропустить: в промпте останется место для ваших данных.
Можно пропустить: в промпте останется место для ваших данных.
Можно пропустить: в промпте останется место для ваших данных.
Необязательное уточнение к исходному промпту.
Необязательное уточнение к исходному промпту.
Необязательное уточнение к исходному промпту.
Живой предпросмотр
Подставленное выделено зелёным, незаполненное — пунктиром.
Напиши Unit-тесты для функции по указанному контракту. Язык, раннер и версии: [данные]. Функция: [код]. Контракт: [входы, выходы, ошибки]. Побочные эффекты: [данные]. Покрой обычный, пустой, граничный и ошибочный ввод. Не повторяй алгоритм функции для расчёта ожиданий. Моки используй только для внешних зависимостей.
Нужно 100 таких промптов под разные данные? Загрузите таблицу в Promptada.
Создать аккаунт Для пакетной работы с текстами.Ответы остаются на этой странице и исчезают при перезагрузке. В ссылке — только выбранная задача.
Нужно много вариантов этого промпта?
Подготовьте таблицу компонентов, требований и окружений. Promptada соберёт текстовые задания по одному шаблону и передаст пакет выбранной модели.
Создать аккаунтКак пользоваться
- Подготовьте язык, раннер и версии, функция, контракт, побочные эффекты.
- Задайте ожидания Unit-тестов по контракту, а не коду.
- Запустите clamp тесты и проверьте отказ версии, не ограничивающей верхнюю границу.
- Дополни тесты 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-тесты?
Дайте контракт и раннер, затем код и правила зависимостей. Сначала запишите вход и ожидаемый выход в таблице; затем превращайте строки в тесты.
Какие сценарии покрыть?
Выберите обычные значения, границы и ошибки; добавляйте пустой ввод только когда он существует в контракте. Не все типы пустого ввода применимы к функции: сценарии выбираются по реальному контракту.
Как проверить результат функции?
Запустите тесты своим раннером и убедитесь, что известная неправильная версия падает. Неверная контрольная реализация помогает убедиться, что тест способен обнаружить именно нужную ошибку.