Unittest: встроенная сеть безопасности Python для разработчиков

Тестирование, как правило, не является любимой частью кодирования для большинства разработчиков, но это на 100% необходимо. Преподаватель из моего Bootcamp кода однажды назвал тестирование «овощами кодирования», и это действительно то, что есть. Тщательное тестирование способствует уверенности в качеством и стабильности программного обеспечения, ловив ошибки во время разработки, когда вы хотите их поймать. Это снижает риск неправильного поведения программного обеспечения в производстве, что, в свою очередь, повышает производительность приложений, повышает безопасность и сводит к минимуму простоя.

Хорошо проверяемый код также приносит пользу вашим коллегам, так как он надежный, обслуживающий и легкий для рефакторирования. Тесты служат защитной сетью, гарантируя, что существующие функции продолжают работать после внесения изменений. Кроме того, автоматизированные тесты обеспечивают более быструю итерацию, улучшают сотрудничество и предоставляют четкую документацию о том, как код предназначен для ведения.

Есть много вариантов, когда дело доходит до выбора структуры тестирования. Этот урок будет сосредоточен на простых тестах, используя встроенный пакет Python, Unittest. Этот учебник сосредоточен на разработчиках, новых в кодировании, у которых нет опыта работы с модульными тестированием. Unittest-отличный вариант для разработчиков, которые предпочитают встроенный подход. Модуль Python Unittest превосходит в обработке основных модульных тестов, которые подтверждают правильность отдельных функций или методов в изоляции. Это также отличная отправная точка для создания собственных тестов и знакомства с тем, как они работают.

Начало работы с питоном

Unittest.TestCase — это класс в модуле Python Unittest, который обеспечивает основу для написания и запуска тестов. Это базовый класс для создания тестов, которые являются отдельными единицами в Python.

Когда вы создаете класс, который наследует от unittest.testcase, вы можете определить методы для проверки конкретной функциональности в вашем коде. Эти методы испытаний должны начинаться с теста (например, test_addition). Внутри каждого метода вы используете различные методы утверждения, чтобы проверить, соответствуют ли фактические результаты ожидаемые результаты.

Утверждение — это утверждение, которое проверяет, является ли условие истинным. Если это ложь, это вызывает ошибку или исключение. Unittest.testCase предоставляет следующие утверждения:

  • assertequal (a, b) проходит, если a == b
  • assertnotequal (a, b) проходит, если a! = b
  • AssertTrue (x) проходит, если x верна
  • AssertFalse (x) проходит, если x является ложным
  • Assertisnone (x) проходит, если x нет
  • Assertraises (Exception, Func, *args) проходит, если func ( *args) поднимает исключение

Создание первого теста

Это очень просто. После импорта Unittest все, что нам нужно сделать, это создать функцию, а затем создать и запустить тест.

Определите функцию:

Создайте тест, используя класс unittest.testcase:

Обратите внимание, что если вы используете ноутбук Jupyter, вам нужно будет заменить следующий код…

С этим кодом…

в нижней части вашего кода.

Запуск этого теста даст сообщение успешным.

Тем не менее, лишь несколько небольших изменений сделают тест провалиться:

setup () и deplowdown ()

Эти методы гарантируют, что каждый тест изолирован и работает в чистой среде со всем, что ему нужно.

  • setup () — это метод, который запускается перед каждым модульным тестом и устанавливает любое необходимое состояние или ресурсы. Это может использоваться при подготовке конкретной среды или ресурсов (например, подключение к базе данных или тестовые файлы) перед выполнением каждого метода испытаний.
  • Teardown () очищает эти соединения и ресурсы между тестами, чтобы обеспечить сами по себе каждый тест.

Объект издевался над

Unittest.Mock позволяет заменить зависимости на мак -объекты (например, запросы API). Вот как вы можете издеваться над запросом API:

Заключение

Модуль Python Unittest предлагает инструменты для более сложных потребностей тестирования, чем перечисленные выше, но это основы для начала работы. Unittest отлично подходит как для начинающих, так и для опытных инженеров, что делает его отличным выбором для разработчиков, которые ищут встроенное, надежное решение для защиты качества своего кода.

Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Джессика Вахтел — писатель по маркетингу разработчиков в InfluxData, где она создает контент, который помогает сделать данные о мире временных рядов более понятными и доступными. Джессика имеет опыт работы в разработке программного обеспечения и технической журналистике. Подробнее от Джессики Вахтел

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *