Юнит-тесты - мощный инструмент для разработчиков, обеспечивающий качество кода. Они позволяют изолированно тестировать функции и убедиться, что они работают так, как задумано. В этом руководстве я покажу вам, как написать свой первый модульный тест на Python. Вы узнаете не только об основах модульного тестирования, но и о том, как эффективно настраивать тесты.
Основные выводы
- Юнит-тесты помогают обнаружить ошибки на ранней стадии и убедиться, что ваши функции работают так, как задумано.
- Библиотека Python unittest предоставляет простой способ реализации тестов.
- Эффективные тесты включают в себя как положительные, так и отрицательные сценарии и проверяют типы возвращаемых данных.
Пошаговое руководство
Шаг 1: Подготовка проекта
Во-первых, вам нужен файл Python, в котором будет определена ваша функция. В нашем примере мы назвали файл preisberechnung.py. Здесь вы определяете функцию get_selling_price, которая берет цену покупки и добавляет наценку.

Шаг 2: Создайте файл для ваших модульных тестов
Затем создайте новый файл, содержащий тесты для этой функции. Назовем этот файл preisberechnung_test.py. Здесь вы будете работать с модулем unittest.
Чтобы использовать фреймворк, импортируйте его в начале вашего файла:

Шаг 3: Определите тестовый класс
Класс теста должен наследоваться от unittest.TestCase. Это позволит вам организовать все тесты в структурированном виде. Переименуйте класс в PriceCalculationTest, чтобы уточнить, что именно тестируется.

Шаг 4: Напишите тесты
Теперь пришло время написать реальные тесты. Начните с теста, который проверяет, имеет ли возвращаемое значение get_sale_price ожидаемый тип (float):

Шаг 5: Проверка недействительных входов
Также важно протестировать недействительные входы. Добавьте тест, который проверяет, выбрасывает ли функция исключение для недопустимых входных данных, таких как None или строка:

Шаг 6: Выполнение тестов
Чтобы запустить тесты, вы можете сделать это либо через терминал, либо непосредственно в вашей IDE. Если вы используете терминал, выполните следующие действия:
В вашей IDE, например PyCharm, вы можете использовать конфигурацию run для выполнения тестов.

Шаг 7: Проверьте результаты
Если вы успешно выполнили тесты, вы получите результат, который покажет, все ли тесты пройдены. Зеленый результат означает, что ваш код работает так, как было задумано.
Шаг 8: Расширение тестов
В дополнение к основным тестам вы можете добавить другие сценарии, чтобы повысить безопасность кода. Не забывайте тестировать как положительные, так и отрицательные случаи, чтобы убедиться, что ваша логика работает во всех ситуациях.

Резюме - Первый юнит-тест на Python: основы и реализация
Написание модульных тестов - важный навык, который поможет вам сделать ваш код надежным. В этом руководстве вы узнали, как написать свой первый юнит-тест на Python, начиная с определения функции и заканчивая ее выполнением и проверкой результатов. Тщательное тестирование значительно улучшит сопровождаемость вашего кода и позволит обнаружить проблемы на ранней стадии.
Часто задаваемые вопросы
Как создать модульный тест в Python? Чтобы создать модульный тест в Python, создайте тестовый класс, который наследуется от unittest.TestCase, и пишите тесты как методы этого класса.
Почему я должен писать модульные тесты?Модульные тесты помогают обнаружить ошибки на ранней стадии и гарантировать, что ваши функции работают так, как задумано.
Как запускать модульные тесты?Вы можете запускать модульные тесты через терминал с помощью команды python -m unittest [filename] или непосредственно в вашей IDE.
Что такое хорошая практика юнит-тестирования?Хорошая практика включает в себя как положительные, так и отрицательные тестовые сценарии, а также проверку типов данных. Регулярность выполнения также важна, чтобы сразу проверять изменения в коде.