Учебники

56) Юнит-тестирование Python

Что такое юнит-тестирование?

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

Модульный тест — это тест на уровне сценариев, разработанный на Python для проверки небольшого «функционального элемента». Модульное тестирование — это объектно-ориентированная структура, основанная на тестовых устройствах.

Методы модульного тестирования Python

Юнит-тестирование Python в основном включает тестирование определенного модуля без доступа к какому-либо зависимому коду. Разработчики могут использовать такие методы, как заглушки и макеты, чтобы разделить код на «модули» и запустить тестирование на уровне отдельных модулей.

  • Разработка через тестирование TDD: модульное тестирование должно проводиться вместе с Python, и для этого разработчики используют метод разработки через тестирование. В методе TDD вы сначала проектируете модульные тесты Python и только потом продолжаете писать код, который будет реализовывать эту функцию.
  • Окурки и издевательства: это две основные техники, которые имитируют ложные методы, которые тестируются. Заглушка используется для заполнения в некоторой зависимости , необходимой для модульного тестирования для корректной работы. С другой стороны, Mock — это фальшивый объект, который запускает тесты, в которые мы помещаем assert.

    Цели обоих методов одинаковы, чтобы исключить проверку всех зависимостей класса или функции.

Python Unit Testing Framework

Чтобы упростить процесс модульного тестирования и улучшить качество вашего проекта, рекомендуется среда модульного тестирования Python. Структура модульного тестирования включает в себя

Учебник по PyUnit: изучение фреймворка для юнит-теста Python на примере

  • PyUnit: PyUnit поддерживает фикстуры, тестовые наборы, наборы тестов и тестовый прогон для автоматизированного тестирования кода. В PyUnit вы можете организовать тестовые наборы в наборы с теми же приборами
  • Nose: встроенные в Nose плагины помогут вам с захватом вывода, охватом кода, тестированием документов и т. Д. Синтаксис Nose довольно прост и уменьшает барьеры для написания тестов. Он расширяет юнит-тесты Python для упрощения тестирования.
  • Doctest: Скрипт тестирования Doctest помещается в строку документации с небольшой функцией внизу файла. Doctest позволяет вам протестировать ваш код, запустив примеры, включенные в документацию, и убедившись, что они дали ожидаемые результаты. Вариант использования doctest менее детален и не учитывает особые случаи. Они полезны в качестве выразительной документации основного варианта использования модуля и его компонентов.

Модульное тестирование с PyUnit

Pyunit — это порт Python для JUnit. В составе Pyunit в модуле unittest есть пять ключевых классов.

Учебник по PyUnit: изучение фреймворка для юнит-теста Python на примере

  • Класс TestCase : класс TestCase несет тестовые подпрограммы и предоставляет хуки для создания каждой подпрограммы и последующей очистки
  • Класс TestSuite . Он обслуживает как контейнер коллекции и может иметь несколько объектов testcase и несколько объектов testsuites.
  • Класс TestLoader : этот класс загружает тестовые наборы и наборы, определенные локально или из внешнего файла. Он испускает объекты тестового набора, которые обладают этими наборами и кейсами.
  • Класс TextTestRunner : для запуска тестов он обслуживает стандартную платформу для выполнения тестов
  • Класс TestResults : предлагает стандартный контейнер для результатов теста

Разработка теста для Python Testing с использованием PyUnit

Модульный тест предоставляет базовый класс, контрольный пример, который может использоваться для создания новых контрольных примеров. Для разработки тестового примера используются три набора методов:

Учебник по PyUnit: изучение фреймворка для юнит-теста Python на примере

unittest.TestCase

setUp()
teardown()

skipTest(aMesg:string)
fail(aMesg:string)

id():string
shortDescription():string

В первом наборе находятся крючки до и после теста. Метод setup () начинается перед каждой процедурой тестирования, а teardown () — после процедуры.

Второй набор методов контролирует выполнение теста. Оба метода принимают строку сообщения в качестве входных данных, и оба отменяют текущий тест. Но метод skiptest () прерывает текущий тест, в то время как метод fail () полностью его завершает.

Последний или третий метод помогают определить тест. Метод id () возвращает строку, состоящую из имени объекта testcase и подпрограммы test. И метод shortDescription () возвращает комментарий docstr при запуске каждой тестовой процедуры.

Преимущества использования Python Unit-тестирования

  • Это поможет вам обнаружить ошибки в начале цикла разработки
  • Это помогает вам писать лучшие программы
  • Он легко синхронизируется с другими методами и инструментами тестирования
  • Будет гораздо меньше ошибок
  • Это легче изменить в будущем с очень меньшими последствиями