Пересмешливая файловая система - PullRequest
9 голосов
/ 15 февраля 2010

Если мои модульные тесты основаны на файловой системе, и мне нужно сделать это, как лучше всего это сделать?

Спасибо

Ответы [ 4 ]

9 голосов
/ 15 февраля 2010

Файловая система является отличным примером того, как TDD может привести вас к лучшему, более гибкому дизайну. Часто при взаимодействии с файловой системой вы можете иметь дело с чтением и записью файлов, используя Streams или TextWriters вместо реальных файлов.

Это все абстрактные типы, поэтому их легко высмеивать.

Теперь у вас есть более гибкий API, потому что он не тесно связан с файловой системой, но все еще поддерживает файловые операции.

3 голосов
/ 15 февраля 2010

В основном у вас есть два варианта: eiter абстрагировать всю логику, связанную с файловой системой, за IFileSystemService, или использовать Stubs от Microsoft, то есть

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

1 голос
/ 16 февраля 2016

Отказ от ответственности Я работаю в Typemock.

Я рад сообщить, что наши последние версии поддерживают следующие типы System.IO, которые необходимо смоделировать

  • Файл
  • Каталог
  • FileStream

Вот краткий пример:

public void Test()
{
    string path = @"C:\TypemockCan.txt";

    Isolate.WhenCalled(() => File.Exists(null)).WillReturn(true);

    Assert.IsTrue(File.Exists(path));
}

Подробнее примеров .

1 голос
/ 15 февраля 2010
...