Вы должны создать сервис-оболочку под названием IFileService, затем вы можете создать бетон, который использует статику для использования в вашем приложении, и фиктивный IFileService, который будет иметь поддельные функциональные возможности для тестирования.Сделайте так, чтобы вы передавали IFileService в конструктор или свойство того, что когда-либо использует его класс. Таким образом, для нормальной работы требуется передать IFileService.Помните, что в модульном тестировании вы тестируете только ту часть кода, а не то, к чему она призывает IFileService.
interface IFileService
{
bool Exists(string fileName);
void Delete(string fileName);
}
class FileService : IFileService
{
public bool Exists(string fileName)
{
return File.Exists(fileName);
}
public void Delete(string fileName)
{
File.Delete(fileName);
}
}
class MyRealCode
{
private IFileService _fileService;
public MyRealCode(IFileService fileService)
{
_fileService = fileService;
}
void DoStuff()
{
_fileService.Exists("myfile.txt");
}
}