Справочник · модуль 12 «Тесты»
Сначала тест
Сначала пишут тест, и он падает. Потом пишут код, чтобы тест прошёл. Тест становится планом.
Сравнение из жизни
Как сначала отметить на стене место для полки, а потом вешать её.
Пример
$ pytest
============================= test session starts ==============================
platform linux -- Python 3.13.0, pytest-8.3.3, pluggy-1.5.0
rootdir: /home/bit/bitproject
collected 1 item
test_bitlib.py F [100%]
=================================== FAILURES ===================================
__________________________________ test_shout __________________________________
def test_shout():
> assert shout("привет") == "ПРИВЕТ!"
E AssertionError: assert 'привет' == 'ПРИВЕТ!'
E
E - ПРИВЕТ!
E + привет
E + where 'привет' = shout('привет')
test_bitlib.py:5: AssertionError
=========================== short test summary info ============================
FAILED test_bitlib.py::test_shout - AssertionError: assert 'привет' == 'ПРИВЕТ!'Учитель в уроке Вот тест для умения кричать. Функция пока не умеет: она возвращает текст как есть. Тест падает. Так и задумано. Отчёт показывает, чего не хватает: нужны большие буквы и восклицательный знак.
Коротко: сначала тест
- Пишем тест для нового умения
- Запускаем: тест падает
- Пишем код, чтобы тест прошёл
- Берём следующее умение
Запомнить
Сначала тест — как нарисовать мишень, а потом стрелять. Тест показывает цель, а код в неё попадает.
Тема из урока 12.4 «Проект: тесты для Бита» курса PythonAZ.