Использование базового класса для настройки и демонтажа модульного теста - PullRequest
12 голосов
/ 27 января 2009

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

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

Ответы [ 3 ]

8 голосов
/ 27 января 2009

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

5 голосов
/ 14 февраля 2009

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

0 голосов
/ 27 января 2009

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

...