Что такое модульное тестирование?
Модульное тестирование в Python выполняется для выявления ошибок на ранней стадии разработки приложения, когда ошибки реже возникают и их исправление обходится дешевле.
Модульный тест - это тест на уровне кода со сценарием, разработанный на Python для проверки небольшой «единицы» функциональности. Модульный тест - это объектно-ориентированная структура, основанная на тестовых приспособлениях.
Методы модульного тестирования Python
Модульное тестирование Python в основном включает в себя тестирование конкретного модуля без доступа к какому-либо зависимому коду. Разработчики могут использовать такие методы, как заглушки и макеты, чтобы разделить код на «блоки» и запустить тестирование на уровне отдельных блоков.
- Разработка через тестирование TDD: модульное тестирование следует проводить вместе с Python, и для этого разработчики используют метод разработки через тестирование. В методе TDD вы сначала разрабатываете модульные тесты Python и только затем продолжаете писать код, который будет реализовывать эту функцию.
- Заглушки и макеты: это два основных метода, имитирующих проверяемые поддельные методы. Заглушка используется для заполнения в некоторой зависимости , необходимой для модульного тестирования для корректной работы. С другой стороны, Mock - это поддельный объект, который запускает тесты, в которые мы помещаем assert.
Оба метода предназначены для исключения тестирования всех зависимостей класса или функции.
Фреймворк модульного тестирования Python
Чтобы упростить процесс модульного тестирования и улучшить качество вашего проекта, рекомендуется Python Unit Testing Framework. Фреймворк модульного тестирования включает
- PyUnit: PyUnit поддерживает фикстуры, тестовые примеры, наборы тестов и средство запуска тестов для автоматического тестирования кода. В PyUnit вы можете организовать тестовые примеры в наборы с одинаковыми приспособлениями.
- Nose: Встроенные плагины Nose помогают с захватом вывода, покрытием кода, тестами документов и т. Д. Синтаксис Nose довольно прост и снижает барьеры для написания тестов. Он расширяет Python unittest, чтобы упростить тестирование.
- Doctest: Скрипт тестирования Doctest находится в строке документации с небольшой функцией внизу файла. Doctest позволяет вам протестировать ваш код, запустив примеры, включенные в документацию, и убедившись, что они вернули ожидаемые результаты. Вариант использования doctest менее подробен и не учитывает особые случаи. Они полезны как выразительная документация по основному варианту использования модуля и его компонентов.
Модульное тестирование с PyUnit
Pyunit - это порт JUnit на Python. В составе Pyunit в модуле unittest есть пять ключевых классов.
- Класс TestCase : класс TestCase несет в себе процедуры тестирования и предоставляет хуки для создания каждой процедуры и последующей очистки.
- Класс TestSuite : он обслуживает как контейнер коллекции и может содержать несколько объектов testcase и несколько объектов testsuites.
- Класс TestLoader : этот класс загружает тестовые наборы и наборы, определенные локально или из внешнего файла. Он генерирует объекты набора тестов, которые содержат эти наборы и кейсы.
- Класс TextTestRunner : для запуска тестов он обслуживает стандартную платформу для выполнения тестов.
- Класс TestResults : он предлагает стандартный контейнер для результатов теста.
Разработка тестового примера для тестирования Python с использованием PyUnit
Модульный тест предоставляет базовый класс, тестовый пример, который можно использовать для создания новых тестовых примеров. Для разработки тестового примера используются три набора методов:
unittest.TestCase
setUp()teardown()skipTest(aMesg:string)fail(aMesg:string)id():stringshortDescription():string
В первом наборе находятся крючки до и после тестирования. Метод setup () начинается перед каждой процедурой тестирования, а teardown () - после процедуры.
Второй набор методов контролирует выполнение теста. Оба метода принимают на входе строку сообщения и оба отменяют текущий тест. Но метод skiptest () прерывает текущий тест, а метод fail () полностью его не выполняет.
Последний или третий метод помогает определиться с тестом. Метод id () возвращает строку, состоящую из имени объекта тестового набора и процедуры тестирования. А метод shortDescription () возвращает комментарий docstr при запуске каждой процедуры тестирования.
Преимущества использования модульного тестирования Python
- Это помогает вам обнаруживать ошибки на ранних этапах цикла разработки.
- Это помогает вам писать лучшие программы
- Он легко синхронизируется с другими методами и инструментами тестирования.
- В нем будет намного меньше ошибок
- В будущем легче модифицировать с меньшими последствиями