Вопрос

Я создал модульный тест для метода своего проекта.Этот метод вызывает исключение, если файл не найден.Я написал для этого модульный тест, но я все еще не могу пройти тест, когда возникает исключение.

Метод

родовое слово

Модульный тест

родовое слово

Должен ли я обрабатывать исключение в методе или мне не хватает чего-то еще?

РЕДАКТИРОВАТЬ:

Путь, который я передаю, не тот, по которому я могу найти файл, поэтому этот тест должен пройти ... т.е. что, если файл не существует на этом пути.

Это было полезно?

Решение

В вашем модульном тесте кажется, что вы развертываете xml-файл: TestData\BuildMachineNoNames.xml, который вы передаете в GetBuildMachineNames.Итак, файл существует, и вы не можете ожидать генерации кода кода.Так может быть так:

родовое слово

Другие советы

Помещая атрибут [ExpectedException (typeof (FileNotFoundException), «Поднять исключение, когда файл не найден»)], вы ожидаете, что метод выдаст исключение FileNotFoundException, если FileNotFoundException не сгенерировано. Тест завершится ошибкой.В противном случае тест будет успешным.

Я никогда толком не понимал смысла создания кодового кода.Вы должны уметь перехватывать исключение в коде, а не в атрибутах.Это лучшая практика, и она также позволяет вам делать что-то после того, как она поднята (например, больше проверок) ... Также она позволит вам остановить код в отладчике и проверить вещи, а не спрашивать на форумах.:)

Я бы использовал Assert.Throws (код TestDelegate);
См. здесь пример .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top