Исключение в модульном тесте MS?
-
28-10-2019 - |
Вопрос
Я создал модульный тест для метода своего проекта.Этот метод вызывает исключение, если файл не найден.Я написал для этого модульный тест, но я все еще не могу пройти тест, когда возникает исключение.
Метод
родовое словоМодульный тест
родовое словоДолжен ли я обрабатывать исключение в методе или мне не хватает чего-то еще?
РЕДАКТИРОВАТЬ:
Путь, который я передаю, не тот, по которому я могу найти файл, поэтому этот тест должен пройти ... т.е. что, если файл не существует на этом пути.
Решение
В вашем модульном тесте кажется, что вы развертываете xml-файл: TestData\BuildMachineNoNames.xml
, который вы передаете в GetBuildMachineNames
.Итак, файл существует, и вы не можете ожидать генерации кода кода.Так может быть так:
Другие советы
Помещая атрибут [ExpectedException (typeof (FileNotFoundException), «Поднять исключение, когда файл не найден»)], вы ожидаете, что метод выдаст исключение FileNotFoundException, если FileNotFoundException не сгенерировано. Тест завершится ошибкой.В противном случае тест будет успешным.
Я никогда толком не понимал смысла создания кодового кода.Вы должны уметь перехватывать исключение в коде, а не в атрибутах.Это лучшая практика, и она также позволяет вам делать что-то после того, как она поднята (например, больше проверок) ... Также она позволит вам остановить код в отладчике и проверить вещи, а не спрашивать на форумах.:)
Я бы использовал Assert.Throws (код TestDelegate);
См. здесь пример .