Вы можете использовать библиотеку System.IO.Abstractions , чтобы сделать ваш метод тестируемым.
Вам необходимо добавить свойство FileSystem
к вашему ConfigStore
классу.
// Default file system uses .NET Framework's File class
public IFileSystem FileSystem { get; set; } = new FileSystem();
Во-вторых, вам нужно использовать эту файловую систему вместо StreamReader
или напрямую System.IO.File
:
public string ReadFile(string FileName)
{
return FileSystem.File.ReadAllText();
}
Затем вам нужно реализовать подделку IFileSystem
и переопределить необходимые методы, например, в методе File.Create
вы можете вместо этого добавить переданное имя файла в коллекцию или ничего не делать.
Затем последним шагом будет создание экземпляра этой поддельной файловой системы и присвоение ему ConfigStore.FileSystem
, чтобы используемая вами файловая система использовалась.