Это задания из лекции. Решения — в разделе ✅ Решения.
Задание 1: Правила именования файлов и функций тестов в pytest
Какие правила именования файлов и функций тестов используются в pytest? Перечислите их. Приведите пример правильно названного файла и функции теста.
Задание 2: Фикстура pytest для подготовки общего ресурса
Как использовать фикстуры в pytest для подготовки общего ресурса для тестов?
Напишите фикстуру, которая создаёт экземпляр класса Calculator, и используйте её в двух тестах — для метода sum и для метода avg.
Задание 3: Проверка, что метод выбрасывает ожидаемую ошибку
Как проверить, что метод выбрасывает ожидаемую ошибку в pytest?
Напишите тест, который проверяет: при вызове calculator.div(10, 0) будет поднято исключение ArithmeticError с текстом "На ноль делить нельзя".
Задание 4: Маркировки для управления тестами
Как использовать маркировки в pytest для управления тестами? Напишите примеры для:
Пропуска теста (@pytest.mark.skip)
Условного пропуска (@pytest.mark.skipif) — при Python ниже 3.8
Пользовательской маркировки positive_test и запуска тестов по ней
Задание 5: Сравнение pytest с ручным тестированием
Перечислите преимущества автоматизированного unit-тестирования с pytest по сравнению с ручным тестированием (подход с assert в скрипте). Назовите не менее четырёх.