unittest
в Python - это встроенный фреймворк для написания и запуска автоматизированных тестов. Он позволяет создавать тестовые случаи (test cases) и наборы тестов (test suites) для проверки корректности работы кода. Он поддерживает концепции, общие для других xUnit фреймворков, такие как:
assertEqual
, assertTrue
).unittest
помогает писать надежный и поддерживаемый код, обнаруживая ошибки на ранних этапах разработки.
unittest
- это встроенный модуль в Python, предназначенный для создания и запуска автоматизированных тестов для вашего кода. Он является частью стандартной библиотеки Python и предоставляет фреймворк для написания, организации и запуска тестов, основанных на принципах модульного тестирования.
Основные компоненты модуля unittest
:
TestCase
) в логические группы. Позволяет запускать тесты группами или все сразу.TestSuite
или TestCase
, и собирает результаты. Он предоставляет отчет о прохождении или неудаче каждого теста.TestCase
, для проверки ожидаемых результатов. Примеры: assertEqual
, assertTrue
, assertFalse
, assertRaises
, assertIsNone
и т.д. Если утверждение не выполняется, тест считается проваленным.Преимущества использования unittest
:
unittest
является частью стандартной библиотеки Python, что делает его доступным в любом окружении Python без необходимости установки дополнительных библиотек.Пример использования:
import unittest
def add(x, y):
return x + y
class TestAdd(unittest.TestCase):
def test_add_positive_numbers(self):
self.assertEqual(add(2, 3), 5)
def test_add_negative_numbers(self):
self.assertEqual(add(-1, -2), -3)
def test_add_mixed_numbers(self):
self.assertEqual(add(5, -2), 3)
if __name__ == '__main__':
unittest.main()
В этом примере создается класс TestAdd
, который наследуется от unittest.TestCase
. Каждый метод, начинающийся с test_
, является тестовым случаем. Методы assertEqual
используются для проверки правильности работы функции add
. При запуске этого скрипта, unittest
выполнит каждый тестовый случай и сообщит о результатах.