Обработка исключений C# при модульном тестировании не работаетC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Обработка исключений C# при модульном тестировании не работает

Сообщение Anonymous »

Я новичок в Visual Studio, поэтому у меня нет большого опыта модульного тестирования в ней. Я попытался написать базовый класс чтения файлов, который имеет две переменные: путь и список строк.
Путь может быть передан конструктору или также может быть установлен с помощью метода установки. .
Существует функция readIn, которая загружает список строк текстового файла, которые можно найти по пути.
Функция должна проверять, не является ли путь нулевым или является ли он допустимым (является путь, указывающий на существующий файл). В противном случае он выдает исключение System.ArgumentNullException или новое исключение System.ArgumentException.
Когда я пытаюсь проверить, что исключения выдаются в случае, если путь имеет значение NULL или недействителен, Visual Studio всегда зависает и говорит, что у меня есть необработанное исключение, однако я определил ожидаемое исключение перед методом тестирования.
У вас есть идеи, как мне это сделать правильно?
Или, если это правильный путь (я читал об этом также здесь и на странице MSDN, так что он должен работать), что мне делать, чтобы он работал?
Класс читателя:

Код: Выделить всё

using System;
using System.Collections.Generic;
using System.IO;

namespace LogParserConsole
{
public class FileReader
{
private string path;
private List lines;

public FileReader()
{
path = null;
lines = null;
}

public FileReader(string path)
{
this.path = path;
if (isFileExists())
{
lines = new List();
}
else
{
lines = null;
}
}

public void readIn()
{
if(path == null)
{
throw new System.ArgumentNullException("The path is not set. Please set a path first!");
}
else if(!isFileExists())
{
throw new System.ArgumentException("The given path is invalid, please chek it!");
}
string line;
System.IO.StreamReader file = new System.IO.StreamReader(path);
while ((line = file.ReadLine()) != null)
{
lines.Add(line);
Console.WriteLine(line);
}

file.Close();
}

public bool isFileExists()
{
return File.Exists(path);
}

public string getPath()
{
return this.path;
}

public List getLines()
{
return this.lines;
}

public void setPath(string path)
{
this.path = path;
}
}
}
Метод модульного тестирования для исключения:

Код: Выделить всё

[TestMethod]
[ExpectedException(typeof(System.ArgumentNullException))]
public void ReadInTest()
{
FileReader fr = new FileReader();
fr.readIn();
}
Я также попробовал пример ожидаемых исключений со страницы блога MSDN (https://blogs.msdn.microsoft.com/csell/ ... ion-might- не-будь тем, чего-ты-ожидал/), но он также остановился на исключении и после провала теста.
Это произошло с этим простым примером кода:

Код: Выделить всё

[TestMethod, ExpectedException( typeof ( ApplicationException ) ) ]
public void ut1()
{
throw new ApplicationException();
}
Я думаю, что мне следует проверить свои предпочтения, но понятия не имею, что мне искать.
Спасибо за совет!

Подробнее здесь: https://stackoverflow.com/questions/418 ... oesnt-work
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»