Я использую Visual Studio 2010 Beta 2. У меня есть один [TestClass]
, который имеет [TestInitialize]
, [TestCleanup]
и несколько [TestMethods]
.
Каждый раз, когда запускается тестовый метод, также запускаются методы инициализации и очистки!
У меня сложилось впечатление, что [TestInitialize]
& [TestCleanup]
следует запускать только один раз для каждого локального теста.
Это правильно? Если нет, как правильно это сделать?
это довольно стандартное поведение для наборов тестов: настройка и разборка до и после каждого теста. Философия заключается в том, что тесты не должны зависеть друг от друга. Если вам нужно другое поведение, вам, вероятно, следует использовать статические объекты, которые сохраняются между каждым тестом.
источник
Полный пример взят из документации Microsoft :
источник
Методы, помеченные атрибутом [TestInitialize ()], используются для подготовки аспектов среды, в которой будет выполняться ваш модульный тест. Цель этого - установить известное состояние для запуска вашего модульного теста. Вы можете использовать метод [TestInitialize ()] для копирования, изменения или создания определенных файлов данных, которые будет использовать ваш тест.
Создайте методы, помеченные атрибутом [TestCleanUp {}], чтобы вернуть среду в известное состояние после выполнения теста. Это может означать удаление файлов в папках или возврат базы данных в известное состояние. Примером этого является сброс базы данных инвентаризации в исходное состояние после тестирования метода, который используется в приложении для ввода заказа.
Для получения дополнительной информации, пожалуйста, обратитесь: http://msdn.microsoft.com/en-us/library/ms182517%28v=vs.100%29.aspx
источник