Django — полноценный веб-фреймворк, написанный на Python. Он поставляется с автоматизированной средой тестирования, используемой для написания модульных тестов. Эта среда автоматизированного тестирования является расширением среды модульного тестирования Python.
Фреймворк автоматизированного тестирования Django
Вот краткий обзор среды автоматизированного тестирования Django.
SimpleTestCase или TestCase?
У нас есть два класса, которые наследуются от django.test базового класса. Это SimpleTestCase и есть TestCase.
Класс SimpleTestCase является производным от TestCase класса и пишет тесты, не связанные с выполнением запросов к базе данных. В отличие от этого, мы используем TestCase класс, если тест включает выполнение запросов к базе данных.
Методы setUpи tearDown
Внутри тестового класса мы обычно используем два метода — методы setUp и tearDown. Метод setUp выполняет действие, которое запускается перед вызовом каждого тестового метода. Это может помочь создать центральное место для инициализации нашей базы данных перед выполнением тестов, включающих базу данных.
С другой стороны, метод tearDown делает обратное. Он вызывается после вызова каждого тестового метода и завершения его теста. Здесь мы можем выполнить любое действие по очистке. Этот метод выполняется независимо от того, оценивает ли метод теста значение True или False.
Рекомендуется, чтобы вы очень развернуто называли свои методы тестирования — например, test_user_profile_model.
В дополнение к этому, каждый метод тестирования должен начинаться со слова, test чтобы среда тестирования Django могла узнать, что это тест, и запустить это.
Утверждения
Внутри тестового метода у нас есть утверждения, используемые для оценки двух операндов, чтобы увидеть, соответствует ли значение слева значению справа. Если они совпадают, мы имеем успешное утверждение. Если это не соответствует, у нас есть неудачное утверждение.
Вот несколько утверждений:
assertIsNone: Это утверждение проверяет, имеет ли операнд значениеNone.
assertIsInstance: Это утверждение проверяет, является ли операнд в левой части экземпляром операнда в правой части.
assertEqual: Это утверждение проверяет, соответствует ли операнд в левой части операнду в правой части.
assertRaises: Это утверждение проверяет, вызывает ли рассматриваемый операнд конкретное исключение. Это может быть полезно, если мы ожидаем, что конкретная тестовая функция вызовет конкретное исключение.
assertIn: Это утверждение проверяет, содержится ли элемент операнда в левой части в элементе операнда в правой части. Например, мы можем проверить, соответствует ли вывод HTML тому, что мы ожидаем.
assertTrue: Это утверждение проверяет, является ли рассматриваемый операндTrue.
assertFalse: Это утверждение проверяет, утверждает ли рассматриваемый операнд значениеFalse.