Возможный дубликат:
Как вы издеваетесь над файловой системой в С# для модульного тестирования?
Я пишу модульные тесты для своего кода, используя Moq как фальшивую фреймворк.
Мой код включает вызовы в файловую систему, используя прямые вызовы классов System.IO
. Например, File.Exists(...)
и т.д.
Я бы хотел, чтобы этот код был более подвержен тестированию, поэтому я должен иметь интерфейс, например IFile
, с соответствующим методом, например Exists(string path)
.
Я знаю, что могу написать это с нуля, но я подумал, что, возможно, есть полная, надежная структура, которая имеет как интерфейсы, так и реализации для файловой системы. Эта (желаемая) структура также может быть своего рода "службой", поэтому ее API не обязательно должен быть "эквивалентом интерфейса" для пространства имен System.IO
.
Обратите внимание, что мне бы очень хотелось иметь интерфейсы (и не статические методы), чтобы мой код был готов к инъекции зависимостей
Что я получил до сих пор:
- Как-то похоже, но не тот же вопрос был задан в stackoverflow
- В codeplex.com существует проект с именем CodePlex Source Control Client (ссылка), которая имеет такие классы в исходном коде (см.
/Source/TfsLibrary/Utility/
в исходном коде для конкретных деталей)
Любые другие рекомендации?