Часто при написании кода на Python возникает ситуация, когда функция предназначена для обработки определенных условий и должна вызывать исключение, если эти условия не выполняются. Например, можно встретить функцию, которая принимает на вход число и ожидает, что это будет положительное число. Если это условие не выполняется, функция вызывает исключение.
def sqrt(number): if number < 0: raise ValueError("number must be positive") return number ** 0.5
В этом случае важно убедиться, что функция действительно вызывает исключение при неправильных условиях. Для этого можно написать тест, который проверяет, что функция вызывает исключение.
Библиотека unittest
в Python предоставляет инструмент для тестирования исключений.
import unittest class TestSqrt(unittest.TestCase): def test_negative_number(self): with self.assertRaises(ValueError): sqrt(-1)
В этом примере тестовый метод test_negative_number
проверяет, что функция sqrt
вызывает исключение ValueError
, когда вызывается с отрицательным числом. Если исключение вызывается, тест проходит, если исключение не вызывается, тест не проходит.
Использование self.assertRaises
является стандартным способом тестирования вызова исключений в Python. Этот метод принимает тип исключения и вызываемую функцию, и проверяет, что функция вызывает исключение указанного типа.
Добавить комментарий