Как создавать модульные тесты, выявляющие реальные ошибки.
Модульные тесты должны выражать ожидаемое поведение и значимые границы. Не повторяйте в тесте формулу реализации.
Адаптируйте процесс под свою задачу.
Определите ожидаемое поведение по контракту функции и выберите значимые обычные, граничные и сбойные случаи. Используйте известные результаты или независимые фикстуры, избегая проверок, лишь повторяющих вычисление реализации.
- Что вы предоставляете
- Реализация функции и тестовый фреймворк.
- Что вы получите
- Содержательные тесты поведения и граничных случаев.
Посмотрите входные данные и результат.
Иллюстративные входные и выходные данные · учебный пример, а не реальный запуск WebAct
Полей ввода: Пример
Write pytest tests for calculator.add(a, b). It returns the sum of two integers. Required cases: positive values, zero, negative values.
Готовый пример
# test_calculator.py
import pytest
from calculator import add
@pytest.mark.parametrize("a,b,expected", [(2, 3, 5), (0, 0, 0), (-2, 3, 1)])
def test_add(a, b, expected):
assert add(a, b) == expected
Run in the project with pytest installed: python -m pytest test_calculator.pyДобавьте эти данные в промпт и скопируйте его в WebAct, чтобы попробовать задачу. Ваш результат может отличаться от примера.
Решения и устранение проблем.
Должен ли сгенерированный модульный тест дублировать формулу функции?
По возможности используйте независимо известные ожидания. Повтор той же ошибки в тесте может создать видимость проверки неверной реализации.
Почему все тесты проходят, а реальный сбой остаётся?
Проверьте, охватывают ли тесты сбойное условие и реальный контракт. Большое число тестов не доказывает значимого покрытия.
Источник для этого сценария.
Попробуйте на собственном источнике.
Замените пример своим материалом в промпте. Сохраните нужные требования и скопируйте задачу в WebAct.
Настроить и скопировать задачу ↑