Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
20 Ноя 2024
1 мин
858

Тестирование на исключения в Python

Часто при написании кода на Python возникает ситуация, когда функция предназначена для обработки определенных условий и должна вызывать исключение,

Часто при написании кода на 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. Этот метод принимает тип исключения и вызываемую функцию, и проверяет, что функция вызывает исключение указанного типа.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий