Ответ 1
Атрибуты. Это способ добавить метаданные о методах/свойствах/интерфейсах/классах/пространствах имен для во время выполнения.
В этом примере к методу добавляется TestFixtureSetUpAttribute. Это позволяет тестировщику определить, какой метод в вашем классе будет выполняться при настройке текстового прибора.
Тест-бегун загружает тестовую сборку в память во время выполнения. Затем он перечисляет классы, определенные в вашей сборке, которые были отмечены определенным атрибутом (независимо от того, что NUnit использует для обозначения тестового класса). Бегун теперь знает, какие классы должны создавать экземпляры для запуска тестов. Затем он просматривает методы, определенные в классе, для метода, который будет запускаться для настройки тестового прибора. Он ищет каждый метод для атрибута, о котором вы просили. Когда он найдет этот метод, он знает, как запустить этот метод перед запуском тестов/каждого теста (в зависимости от того, что это означает в NUnit).
Атрибуты - все о добавлении информации о методе, который вы можете искать во время выполнения. Это то, что вам нужно, если вам не нужно их, вы не пропустите их, но когда вам нужно, OMFG отлично, что они доступны.
(В С# вы можете опустить "Атрибут" из имени типа. Компилятор знает, что вы говорите, например, "SerializableAttribute", когда вы говорите [Serializable]
)