Я знаю, что ответ может отличаться для каждой среды тестирования. Но для тех Вы знаете, что должно произойти?
В MSTest у вас есть TestInitializeAttribute
При запуске в нагрузочном тесте метод, отмеченный этим атрибутом, будет запускаться один раз для каждой итерации виртуального пользователя. в тесте. Если вам нужно выполнить операции инициализации один раз, которые применяются ко всему тесту, используйте ClassInitializeAttribute .
AssemblyInitializeAttribute
запускается один раз для всех тестов во всех классах.
В junit4 у вас есть аннотации, позволяющие отметить оба типа методов установки / удаления. Вот краткое изложение:
@BeforeClass
@AfterClass
@Before
@After
В NUnit есть TestFixtureSetUp
, который запускается только один раз перед запуском всех тестов в фикстуре, и SetUp
, который запускается перед запуском каждого метода теста.
Это, естественно, зависит от фреймворка, и для конкретных ответов на этот вопрос вы должны проверить соответствующую документацию.
Методы настройки для тестов или фикстуры полезны, но ими нельзя злоупотреблять. Если в модульных тестах есть сложные методы настройки , вы можете утверждать, что это скорее интеграционные тесты, и, следовательно, их следует реорганизовать. Сложная тестовая установка - это запах кода. С другой стороны, разумное использование методов настройки может уменьшить дублирование и сделать тесты более удобочитаемыми и удобными в обслуживании.