все 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Сообщить о неточности