Объясните методы "setUp" и "tearDown" Python, используемые в тестовых случаях - программирование
Подтвердить что ты не робот

Объясните методы "setUp" и "tearDown" Python, используемые в тестовых случаях

Может ли кто-нибудь объяснить использование методов Python setUp и tearDown при написании тестовых случаев, кроме того, что setUp вызывается непосредственно перед вызовом метода тестирования, а tearDown вызывается сразу после его вызова?

4b9b3361

Ответ 1

В общем, вы добавляете все необходимые шаги для установкиUU и всех шагов очистки для tearDown.

Вы можете прочитать больше с примерами здесь.

Когда метод setUp() определен, тестовый бегун будет запускать этот метод перед каждым тестом. Аналогично, если метод tearDown() определен, test runner будет вызывать этот метод после каждого теста.

Например, у вас есть тест, который требует наличия элементов или определенного состояния - поэтому вы помещаете эти действия (создание экземпляров объектов, инициализацию db, подготовку правил и т.д.) в setUp.

Кроме того, как вы знаете, каждый тест должен останавливаться в том месте, где он был запущен - это означает, что нам нужно восстановить состояние приложения в его исходное состояние - например, закрыть файлы, соединения, удалить вновь созданные элементы, вызвать обратный вызов транзакций и т.д. - все эти шаги должны быть включены в tearDown.

Итак, идея состоит в том, что сам тест должен содержать только те действия, которые должны выполняться на тестовом объекте, чтобы получить результат, тогда как setUp и tearDown - это методы, которые помогут вам оставить ваш тестовый код чистым и гибким.

Вы можете создать setUp и tearDown для кучи тестов и определить их в родительском классе, поэтому вам будет легко поддерживать такие тесты и обновлять общие препараты и очищать.

Если вы ищете простой пример, пожалуйста, используйте следующую ссылку с примером

Ответ 2

Вы можете использовать их, чтобы разложить код, общий для всех тестов в наборе тестов.

Если в ваших тестах много повторяющегося кода, вы можете сделать их короче, переместив этот код в setUp/tearDown.

Вы можете использовать это для создания тестовых данных (например, создания подделок/макетов) или выполнения функций с подделками.

Если вы проводите интеграционное тестирование, вы можете использовать проверку экологических условий в setUp и пропустить тест, если что-то не настроено должным образом.

Например:

class TurretTest(unittest.TestCase):

    def setUp(self):
        self.turret_factory = TurretFactory()
        self.turret = self.turret_factory.CreateTurret()

    def test_turret_is_on_by_default(self):
        self.assertEquals(True, self.turret.is_on())

    def test_turret_turns_can_be_turned_off(self):
        self.turret.turn_off()
        self.assertEquals(False, self.turret.is_on())

Ответ 3

Предположим, у вас есть пакет с 10 тестами. 8 тестов имеют один и тот же код установки/разрыва. Другие 2 не делают.

настройка и срыв дают вам хороший способ реорганизовать эти 8 тестов. Теперь, что вы делаете с другими 2 тестами? Вы переместите их в другую тестовую папку/пакет. Таким образом, использование настроек и разрывов также помогает естественным образом разбить тесты на случаи/сюиты