Есть ли другой способ увидеть поведение программы, когда возникает исключение, кроме `throw new`? - PullRequest
0 голосов
/ 17 февраля 2019

Я пишу в C # подпрограмму, которая читает строки из текстового файла, используя функцию File.ReadAllLines.Код выглядит так:

private void ReadFromLibrary()
{
 string[] ReadBuffer = new string[] { };

 try
        {
            ReadBuffer = File.ReadAllLines("Library.txt");
        }

 catch (FileLoadException F)
        {
            MessageBoxButtons MB = MessageBoxButtons.OK;
            MessageBoxIcon MI = MessageBoxIcon.Error;
            MessageBox.Show(F.Message, "Error!", MB, MI);
        }
}

Я хочу посмотреть, как эта функция будет вести себя во время выполнения, когда возникает исключение FileLoadException.Я не думаю, что ручное изменение состояния моего компьютера, чтобы это исключение произошло, является хорошей идеей, и единственная известная мне альтернатива - вставить throw new FileLoadException после чтения из файла.

Есть ли какая-либо другая альтернатива для получениятот же результат?Я не вижу ничего плохого в использовании throw new, но я хочу знать, могу ли я сделать это по-другому.

1 Ответ

0 голосов
/ 15 марта 2019

Как сказал Джереми,

Дайте конструктору класса аргумент интерфейса IFile.Затем в модульном тесте на ReadFromLibrary смоделируйте метод File.ReadAllLines, чтобы сгенерировать FileLoadException и передать поддельный IFile конструктору перед вызовом метода ReadFromLibrary.

...