Проверьте, было ли выброшено исключение (и исправьте исключение) с помощью инструментов тестирования Microsoft - PullRequest
1 голос
/ 25 февраля 2020

Рассмотрим метод, который возвращает ExcelWorksheet из ExcelPackage (с библиотекой Epplus):

public ExcelWorksheet findExcelSheet(ExcelPackage spreadsheet, string v)

Этот метод выдает Exception, если лист не найден в электронной таблице, для которой имя - «v».

Для этого метода написан модульный тест:

[TestMethod]
public void findExcelSheet_Test()
{
    // arrange
    ExcelPackage testSpreadsheet = new ExcelPackage();
    ExcelWorksheet testWsFPS = testSpreadsheet.Workbook.Worksheets.Add("FPS");
    ExcelWorksheet testWsDRS = testSpreadsheet.Workbook.Worksheets.Add("DRS");
    ExcelWorksheet testWsDPC = testSpreadsheet.Workbook.Worksheets.Add("DPC");

    // act
    findExcelSheet(testSpreadsheet, Path.GetRandomFileName()); //or some other random string

    // assert
}

Каким образом, с помощью Microsoft.VisualStudio.TestTools.UnitTesting, его можно проверить на то, когда он выдает исключения, и что они правильный тип исключения?

1 Ответ

3 голосов
/ 25 февраля 2020

Вам нужно использовать [MSTest V2], чтобы иметь возможность Assert.ThrowsException

Начиная с VS2017, в встроенных шаблонах проекта модульного тестирования используется только MSTest V2.

  • Установить пакет MSTest.TestFramework из Nuget
  • Установить пакет MSTest.TestAdapter из Nuget
  • Затем вы можете использовать Assert.ThrowsException<ArgumentOutOfRangeException>..
 //Substitute `ArgumentOutOfRangeException` with the exception that you receive
 Assert.ThrowsException<ArgumentOutOfRangeException>( ()=>FindExcelSheet(spreadsheet,""));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...