DeepSeek Код 👁 31

DeepSeek: написать unit-тесты для функции

Промпт DeepSeek для генерации полноценного набора unit-тестов с покрытием граничных случаев.

Промпт Запустить →
Промокод — до 25% бонусами к первому пополнению в most-ai
Напиши unit-тесты для функции — такие, которые ловят реальные поломки, а не повышают процент покрытия.

Язык и фреймворк: [СТЕК: Python 3.11, pytest]
Функция (свою вставь вместо примера):
[КОД: def split_payment(total, parts, min_part=100):
    if parts <= 0:
        raise ValueError("parts must be positive")
    base = total // parts
    if base < min_part:
        parts = max(1, total // min_part)
        base = total // parts
    rest = total - base * parts
    return [base + (1 if i < rest else 0) for i in range(parts)]]
Что функция значит для бизнеса: [СМЫСЛ: разбивка суммы заказа на платежи, сумма частей обязана совпадать с исходной до копейки]

Что нужно:
1. Тесты на нормальный путь — не больше трёх, с понятными именами.
2. Тесты на края: ноль, единица, отрицательные значения, сумма меньше минимальной части, остаток
   от деления не нулевой.
3. Тесты на исключения: что именно должно упасть и с каким сообщением.
4. Один тест-инвариант: свойство, которое обязано держаться на любых входах (здесь — сумма частей
   равна total). Через `parametrize` — до 7 наборов.
5. Строкой: какие входы остались непокрытыми и почему это допустимо.

Отсечка. Не пиши тестов, которые повторяют реализацию: `assert split_payment(1000, 4) == [250]*4`
рядом с `assert base == total // parts` — это проверка кода самим кодом. Не мокай то, что можно
вызвать напрямую. Не собирай двадцать однотипных случаев вместо одного `parametrize`. Если из кода
видно поведение, которое противоречит смыслу из поля СМЫСЛ, — напиши это отдельной строкой
до тестов, а не подгоняй тест под текущий баг.

Проверка перед выдачей: убедись, что инвариант из пункта 4 падает, если в функции заменить
`rest` на ноль. Если не падает — тест бесполезен, переделай.
Запустить промпт →

Похожие промпты

DeepSeek
DeepSeek: рефакторинг легаси-функции пошагово
DeepSeek
DeepSeek: объяснить чужой/легаси код по строкам
DeepSeek
DeepSeek: код-ревью pull request с приоритизацией
DeepSeek
Парсер на заказ через DeepSeek: код-шаблон
DeepSeek
Telegram-боты на заказ с DeepSeek: схема услуги
DeepSeek
Пошаговая отладка бага с трейсбэком
DeepSeek
TDD-цикл red-green-refactor для новой функции
Браузерная игра одним HTML-файлом
DeepSeek
Браузерная игра одним HTML-файлом

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

import pytest
from mymodule import calculate_discount

# Happy path
def test_standard_discount():
    assert calculate_discount(100, 0.1) == 90

# Граничные
@pytest.mark.parametrize('price', [0, 0.01, 999999])
def test_edge_prices(price):
    assert calculate_discount(price, 0.1) >= 0

# Невалидный вход
def test_negative_price_raises():
    with pytest.raises(ValueError):
        calculate_discount(-1, 0.1)

Полезные статьи

Промты для программиста: 43 промпта под задачи кода
Промт для видео поздравления: готовые промпты для Kling, Veo и Seedance
Ответы на тест по нейросетям для учителей: все вопросы с пояснениями

Все гайды →