Как написать модульный тест для удаленных файлов - PullRequest
0 голосов
/ 25 сентября 2018

Я сейчас исправляю дефект, исходный код, как показано ниже:

public void Run()
{
    var tempOutputDir = new DirectoryInfo("d:\Test\");
    GenerateFiles(tempOutputDir);
    var result = RunToStreamCore(tempOutputDir);
}

void GenerateFiles()
{
    // Run complex logic to generate files
}

public MemoryStream RunToStreamCore(DirectoryInfo outputDir)
{
    return new MemoryStream(File.ReadAllBytes(outputDir.GetFiles()[0].FullName));
}

Я предполагаю, что основная причина этого дефекта может быть вызвана тем, что созданный файл был удален сторонней программой, затемoutputDir.GetFiles () [0] выбросить исключительную нулевую ссылку.

Я собираюсь реорганизовать метод RunToStreamCore следующим образом:

public MemoryStream RunToStreamCore(DirectoryInfo outputDir)
{
    var files = outputDir.GetFiles();
    if (files.Length > 0)
    {
        return new MemoryStream(File.ReadAllBytes(files.First().FullName));
    }
    else
    {
        throw new FileNotFoundException("The file can not be found.");
    }   
}

Вопрос заключается в том, как записать для этого модульный тест.сценарий?Как смоделировать поведение удаляемого файла перед тем, как получить файл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...