Метод установки набора тестов выполняется однажды для каждого теста, или только раз и навсегда?

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

5
задан Jader Dias 29 April 2010 в 19:42
поделиться

4 ответа

В MSTest у вас есть TestInitializeAttribute

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

AssemblyInitializeAttribute запускается один раз для всех тестов во всех классах.

4
ответ дан 13 December 2019 в 05:32
поделиться

В junit4 у вас есть аннотации, позволяющие отметить оба типа методов установки / удаления. Вот краткое изложение:

  • запуск установки перед каждым набором тестов использование @BeforeClass
  • запуск разрыва после каждого набора тестов использование @AfterClass
  • запуск настройки перед каждым методом тестирования в вашем наборе используйте @Before
  • запуск удаления после каждого метода тестирования в вашем наборе используйте @After
1
ответ дан 13 December 2019 в 05:32
поделиться

В NUnit есть TestFixtureSetUp, который запускается только один раз перед запуском всех тестов в фикстуре, и SetUp, который запускается перед запуском каждого метода теста.

4
ответ дан 13 December 2019 в 05:32
поделиться

Это, естественно, зависит от фреймворка, и для конкретных ответов на этот вопрос вы должны проверить соответствующую документацию.

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

3
ответ дан 13 December 2019 в 05:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: