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