Python Glossary English

все Python 3unittestфункция

unittest.TestCase.assertRaises()

проверки

Проверяет, что код поднимает нужное исключение. Как контекстный менеджер (with) проверяет блок, а с вызываемым объектом — конкретный вызов.

Синтаксис

with self.assertRaises(ExcType): ...
self.assertRaises(ExcType, callable, *args)

В форме без with частая ошибка — передать результат вызова функции вместо самой функции: она отработает раньше assertRaises, исключение вылетит наружу и тест просто упадёт; функция и её аргументы передаются отдельно. Проверка срабатывает и на подклассах, так что assertRaises(Exception) зелёный почти на любой поломке — указывайте конкретный класс, а чтобы заглянуть в текст сообщения, используйте форму with ... as cm и её атрибут exception или assertRaisesRegex.

Примеры

import unittest
class Tests(unittest.TestCase):
    def test_raises(self):
        with self.assertRaises(ValueError):
            int('abc')
    def test_raises_call(self):
        self.assertRaises(ZeroDivisionError, lambda: 1 / 0)

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности