Метод модульного тестирования, предназначенный для поиска указанных c листов в электронной таблице - PullRequest
0 голосов
/ 14 февраля 2020

В приложении, предназначенном для чтения определенной таблицы c, в которой предполагается наличие определенных таблиц, существует метод, предназначенный для возврата этих таблиц. Для этого используется библиотека Epplus:

public ExcelWorksheet findExcelSheet(ExcelPackage spreadsheet, string v);
{
    foreach (var sheet in spreadsheet.Workbook.Worksheets)
    {
        if ((sheet.Name).CompareTo(v)==0)
        {
            // matching sheet found
            return sheet;
        }
    }

    // at this point, the sheet has not been found
    // we are assuming the user has supplied the correct spreadsheet, with the required worksheets
    // if not, the program cannot continue, as it is totally dependent on this. It will not work with any old spreadsheet
    throw new Exception("Could not find required Excel worksheet: " + v);
}

Как указано в коде, его цель - проверить, есть ли рабочие листы с необходимыми именами, и вернуть их как ExcelWorksheet объекты. Они вызываются три раза, так как требуется три требуемых рабочих листа.

Этот метод требует модульного тестирования с Microsoft.VisualStudio.TestTools.UnitTesting

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

    // assert
}

Метод тестирования, описанный выше является отправной точкой. Что было бы лучшим способом go об этом?

1 Ответ

0 голосов
/ 15 февраля 2020

Вы в значительной степени там. Просто нужно скинуть исключение. Но, поскольку вы используете инструменты тестирования Microsoft, вам придется добавить атрибут в модульный тест для ожидаемых исключений (другие наборы тестов, такие как nunit или xunit, имеют Assert.Throws ...):

[TestMethod]
[ExpectedException(typeof(Exception))]
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

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