Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Утверждения Python: Автоматическое тестирование

Каждую проверку, которую мы написали для функции capitalize(), в тестировании принято называть утверждением. В этом уроке мы познакомимся с этим понятием подробнее.

Что такое утверждение

Утверждения — это ключевая часть тестов. Именно они проверяют функциональность кода:

from capitalize import capitalize

if capitalize('hello') != 'Hello':
    raise Exception('Функция работает неверно!')

if capitalize('') != '':
    raise Exception('Функция работает неверно!')

print('Все тесты пройдены!')

Можно заметить, что все проверки строятся одинаковым способом. В них есть два компонента:

  • Условие
  • Исключение, когда условие не выполнилось

Функция напрашивается здесь сама собой, но ее не придется делать. Python уже включает в себя специальную конструкцию assert, которая выполняет ту же задачу.

Конструкция assert выглядит как функция, но все же ею не является. Это специальная инструкция языка, которая принимает на вход выражение, значением которого должно быть True, иначе выбрасывается исключение.

Поэтому все проверки в тестах инвертируются:

from capitalize import capitalize

assert capitalize('') == ''
assert capitalize('hello') == 'Hello'

https://replit.com/@hexlet/python-testing-asserts

При таких тестах assert true означает, что все хорошо, а assert false говорит об ошибке. Последний вариант — если функция capitalize() работает некорректно, выбрасывает исключение с таким сообщением:

Traceback (most recent call last):
  File "main.py", line 11, in <module>
    assert capitalize('hello') == 'Hello'
AssertionError

Здесь показано само утверждение, на котором сработало исключение. Кроме сообщения, выводится бэктрейс, по которому можно найти утверждение.


Самостоятельная работа

  1. Замените в вашем репозитории ручные утверждения на использование модуля assert
  2. Запустите тесты и убедитесь, что они работают
  3. Попробуйте их сломать
  4. Добавьте код на GitHub

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Об обучении на Хекслете

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 28 марта

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»