Напиши unit-тесты для существующего кода
Создаёт набор осмысленных unit-тестов для конкретного метода или класса: покрывает основной сценарий, границы и ошибки без выдумывания отсутствующих зависимостей.
1 Готовый промпт
Выступи в роли разработчика, который пишет поддерживаемые unit-тесты.
Язык и тестовый стек: C# / xUnit / Moq.
Код:
"""
public async Task<IActionResult> Get(int id) { var item = await _repository.FindAsync(id); return item is null ? NotFound() : Ok(item); }
"""
Ожидаемое поведение:
При существующем id вернуть 200 с объектом, при отсутствующем — 404.
Подготовь unit-тесты по следующим правилам:
1. Сначала кратко перечисли наблюдаемое поведение, которое действительно можно проверить по коду и описанию.
2. Раздели тесты на:
- основной успешный сценарий;
- граничные случаи;
- некорректные входные данные;
- важные ветви условий.
3. Для каждого теста используй понятное имя, отражающее условие и ожидаемый результат.
4. Не тестируй внутреннюю реализацию, если достаточно проверить публичное поведение.
5. Не придумывай зависимости, методы или бизнес-правила, которых нет во вводных.
6. Если код невозможно нормально протестировать без дополнительного контекста, сначала укажи, чего не хватает.
7. После тестов кратко объясни, что осталось непокрытым и почему.
Не меняй production-код без необходимости. Если небольшое изменение существенно улучшит тестируемость, предложи его отдельно после основной версии тестов.
Как использовать
Вставьте код, укажите тестовый стек и ожидаемое поведение. Нейросеть сначала определит проверяемые сценарии, затем напишет тесты.
2 Настроить под себя
Заполните понятные поля ниже. Сервис автоматически соберёт новую версию промпта под вашу задачу.
3 Результат настройки
Заполните конструктор выше,
и здесь появится готовый промпт.
4 Примеры результата
Текстовый пример
Проверяемые сценарии:
— существующий идентификатор возвращает объект;
— отсутствующий идентификатор возвращает NotFound;
— репозиторий вызывается ровно один раз.
Пример:
[Fact]
public async Task Get_WhenItemDoesNotExist_ReturnsNotFound()
{
...
}
Осталось непокрытым: поведение при ошибке хранилища, потому что во вводных не указано, как метод должен её обрабатывать.
5 Комментарии
0