Справочник · модуль 12 «Тесты»

Проверка ошибки .raises()

Блок with pytest.raises(ValueError) проверяет, что код поднимает нужную ошибку. Если ошибки нет, тест падает.

Сравнение из жизни

Как проверка, что сигнализация сработает, когда нужно.

Пример

$ pytest
============================= test session starts ==============================
platform linux -- Python 3.13.0, pytest-8.3.3, pluggy-1.5.0
rootdir: /home/bit/shop
collected 1 item

test_rules.py .                                                          [100%]
============================== 1 passed in 0.01s ===============================

Учитель в уроке Иногда функция должна падать. Возраст не бывает отрицательным, и функция поднимает ошибку ValueError. Тест должен проверить, что ошибка есть. Для этого есть блок with pytest raises. Он ждёт ошибку ValueError. Ошибка случилась, значит, тест прошёл. Если бы ошибки не случилось, тест упал бы.

Запомнить

Проверка ошибки — как учебная пожарная тревога. Проверяем, что сигнал сработает, когда нужно.

Частые ошибки новичков на этой теме

Тема из урока 12.3 «Что проверять» курса PythonAZ.

В этом же уроке