Для каждого класса, в котором у вас есть тесты, тестовое приспособление, вы можете указать 4 специальных метода. Имена методов не очень важны, но вам нужно пометить методы одним из следующих четырех атрибутов, чтобы идентифицировать их.
Соглашение требует, чтобы вы вызывали методы так же, как и атрибуты, но, как я уже сказал, атрибуты - это важный бит.
Обратите внимание, что атрибуты, которые я здесь описываю, - это атрибуты, найденные в NUnit , но аналогичные атрибуты (если не одинаковые) используются в большинстве структур модульных тестов.
Атрибуты:
- TestFixtureSetUp
- TestFixtureTearDown
- SetUp
- Teardown
Первые два имеют отношение к классу в целом. Метод, помеченный атрибутом TestFixtureSetUp
, запускается один раз, до первого теста в классе.
После того, как все тесты в классе были выполнены, метод, помеченный атрибутом TestFixtureTearDown
, выполняется один раз.
Вы можете использовать эти два параметра для подготовки общих структур данных, которые одинаковы для всех тестов и не изменены никакими тестами (это важно).
Последние два, SetUp
и TearDown
, используются для обозначения двух методов, которые будут выполняться до и после каждого отдельного теста.
Метод с тегом SetUp
вызывается перед каждым тестом, а метод с тегом TearDown
вызывается после каждого теста. Вы можете использовать их для подготовки общих структур данных, которые, хотя они и одинаковы для каждого теста, будут изменены некоторыми или всеми тестами, поэтому лучше подготовить новую свежую копию для каждого теста.
Планирование выполнения этих методов в виде псевдокода дает нам следующий порядок:
execute TestFixtureSetUp, if present
for each test do
execute SetUp, if present
execute actual test
execute TearDown, if present
execute TestFixtureTearDown, if present
Использование этих атрибутов не является обязательным. Вам не нужно иметь SetUp
, чтобы иметь TearDown
или наоборот. Это просто точки, в которых вы, возможно, захотите выполнить код.