Как в юнит-тестах сделать mock для файловой системы?
Это перевод вопроса с en so How do you mock out the file system in C# for unit testing?
Есть ли какая-нибудь библиотека или метод создания в юнит-тестах моков для работы с файловой системой? В моём конкретном случае у меня есть методы которые тестируют наличие файла на диске и читают дату создания, возможно в будущем мне понадобятся и другие возможности.
Ответы (1 шт):
Автор решения: A K
→ Ссылка
Установите NuGet пакет System.IO.Abstractions. Не от вендора, но всё-таки готовый и с поддержкой анализаторов roslyn.
Более ранняя версия ответа на en so содержала классическую рекомендацию выделить интерфейс и дальше уже мокать его своей библиотекой тестирования.
interface IFileSystem { bool FileExists(string fileName); DateTime GetCreationDate(string fileName); }