В Python одной из наиболее часто используемых платформ модульного тестирования является unittest, который включен в стандартную библиотеку. Он предоставляет богатый набор инструментов для создания и запуска тестов, а также составления отчетов о результатах.
Основные особенности фреймворка unittest
Тестовый пример: тестовый пример создается путем наследования unittest.TestCase. Каждый метод в классе, начинающийся с test_, считается тестом.
Утверждения. Платформа предоставляет различные методы утверждения для проверки ожидаемых результатов, такие как AssertEqual, AssertTrue, AssertFalse и т. д.
Средство выполнения тестов. Платформа включает средство выполнения тестов, которое запускает тесты и сообщает о результатах.
Базовая структура модульного теста
Импортируйте модуль unittest: начните с импорта библиотеки unittest.
Создайте тестовый пример: определите класс, который наследуется от unittest.TestCase.
Определение методов тестирования: каждый метод должен начинаться с test_ и содержать утверждения для проверки ожидаемого поведения.
Запуск тестов: используйте unittest.main() для запуска тестов, если скрипт выполняется напрямую.
Простой пример
Вот простой пример, демонстрирующий, как использовать фреймворк unittest для тестирования простой функции.
Функция для тестирования
Во-первых, давайте создадим простую функцию, которую мы будем тестировать:
def add(a, b):
вернуть б
def вычесть(a, b):
вернуть a - b
Модульный тест для функции
Теперь мы создадим модульный тест для функций сложения и вычитания:
импортировать модульный тест
from math_functions import add, subtract # Импортируем функции для тестирования
класс TestMathFunctions(unittest.TestCase):
def test_add(self): self.assertEqual(add(2, 3), 5) # Test case: 2 3 = 5 self.assertEqual(add(-1, 1), 0) # Test case: -1 1 = 0 self.assertEqual(add(0, 0), 0) # Test case: 0 0 = 0 def test_subtract(self): self.assertEqual(subtract(5, 3), 2) # Test case: 5 - 3 = 2 self.assertEqual(subtract(-1, -1), 0) # Test case: -1 - (-1) = 0 self.assertEqual(subtract(0, 5), -5) # Test case: 0 - 5 = -5
if имя == 'main':
unittest.main()
Пояснение модульного теста
import unittest: импортирует модуль unittest.
from math_functions import add, subtract: импортирует функции, которые мы хотим протестировать.
class TestMathFunctions(unittest.TestCase): определяет класс тестового примера, который наследуется от unittest.TestCase.
Каждый метод, начинающийся с test_, представляет собой отдельный тест.
Внутри каждого метода тестирования self.assertEqual() проверяет, соответствует ли вывод функции ожидаемому значению.
if name == 'main': unittest.main(): Эта строка позволяет сценарию запускать тесты при непосредственном выполнении.
Проведение тестов
Чтобы запустить тесты, просто запустите скрипт test_math_functions.py. Вы можете сделать это из командной строки:
python test_math_functions.py
Выход
Если все тесты пройдены, вы увидите примерно такой результат:
Проведено 2 теста за 0,001 с
ХОРОШО
Это указывает на то, что методы test_add и test_subtract прошли успешно. Если какое-либо утверждение не выполнено, unittest сообщит об ошибке, указав, какой тест не выполнен и почему.
Заключение
Среда unittest в Python предоставляет простой и эффективный способ создания и запуска модульных тестов. Написав тесты для своих функций, вы можете гарантировать, что они ведут себя должным образом, и поддерживать высокое качество кода на протяжении всего процесса разработки.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3