Подтвердить что ты не робот

Использование базового класса для unit test настройки и срыва

Предполагая, что Visual Studio.NET 2008 и MsTest используются для запуска модульных тестов. Когда система основана на обслуживающем контейнере и тестировании блока впрыска, естественно, потребуется настройка служб.

Должны ли эти службы настраиваться в базовом классе, чтобы все модульные тесты выполнялись или в каждом классе unit test. Если они должны быть в базовом классе, существует ли способ для выполнения методов TestInitialize и ClassInitialize без необходимости их вызова из производного класса, например base.Initialise?

4b9b3361

Ответ 1

Структура MSTest будет искать весь объект (все базовые классы) для методов, отмеченных Test*. Например, когда вы объявляете их в классе unit test, вам не нужно их явно вызывать.

Ответ 2

С 2008 года вы должны иметь [TestInitialize] в базовом классе, и до тех пор, пока вы не добавите другой [TestInitialize] куда-нибудь вниз по иерархии, его нужно вызвать. Вы также можете делать виртуальные методы.

Ответ 3

Я предпочитаю отмеченные методы Test* и Class* находиться в фактическом классе unit test. Если вы определяете их в базовом классе, вы не можете добавлять к ним определенные для теста действия. Вместо этого используйте базовый класс для статических конструкторов экземпляров и финализатора.