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