Справочник · модуль 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.