Многочисленные действия по очистке в модульном тестировании VS2008 - PullRequest
0 голосов
/ 27 июля 2010

Вопросы довольно просты, и мне нужно знать, как создать несколько тестов очистки.

У меня есть несколько тестов, и каждый тест создает отдельный файл.Я хотел бы связать действие очистки для каждого, чтобы я мог удалить указанные файлы для каждого теста.

Например:

[TestMethod]
public void TestMethodA()
{
// do stuff
}

[TestMethod]
public void TestMethodB()
{
// do stuff
}

[TestCleanup]
public void CleanUpA()
{
// clean A
}

[TestCleanup]
public void CleanUpB()
{
// clean B
}

Есть идеи?

1 Ответ

0 голосов
/ 27 июля 2010

Возможно, есть несколько вариантов, которые я вижу.Простое решение, которое может работать для вас, - это иметь переменную уровня класса в вашем классе модульного теста, которая хранит путь к файлу, используемому текущим выполняемым тестом.Пусть каждый тест назначит текущий путь к этой переменной.Тогда у вас может быть один метод очистки, который использует эту переменную для очистки файла.

Другая идея, но для которой может потребоваться значительный рефакторинг, заключается в использовании подхода внедрения зависимостей для абстрагирования вашегокод из файловой системы.Возможно, вместо вашего кода, создающего / открывающего сам файл, вы могли бы иметь дескриптор компонента абстракции ввода-вывода, создающего файл, а затем просто возвращать объект Stream в ваш основной код.При запуске модульных тестов вы можете предоставить своему основному коду версию модульного тестирования компонента абстракции ввода-вывода, которая будет возвращать MemoryStream вместо FileStream, что позволит избежать необходимости выполнять очистку.Я мог бы обновить пример, если мое объяснение не ясно.

...