У меня есть пара методов расширения вспомогательных тестов, например, IsNotEmpty(this string str)
, для которых я также написал модульные тесты.Основная структура этих тестов состоит в том, что у меня есть один тест, который проверяет, что метод расширения проходит и возвращает ожидаемый результат на «хорошем» входе, и тот, который проверяет, что исключение сбоя генерируется на «плохом» входе.Например, тесты на отказ для вышеуказанного метода могут выглядеть следующим образом:
[TestMethod, Fails]
public void IsNotEmpty_Fails_On_Empty_String()
{
"".IsNotEmpty();
}
, где Fails
- это атрибут, который я сам написал - в основном, прокси для [ExpectedException(typeof(AssertFailedException))]
.Так что я явно ожидаю, что будет выдано исключение на единственной строке в приведенном выше тесте, и, таким образом, я не ожидаю, что метод будет запущен полностью.
Но когда я щелкаю правой кнопкой мыши свое решение и выбираю «Тестировать с помощью> NCover», я получаю покрытие кода менее 100% * во всех методах, подобных приведенному выше, с конечной скобкой, выделенной красным.
Почему NCover жалуется на то, что мой тест метод не заканчивается, когда я сказал, что он не будет?
**) Для всех тех из васкто ответит, что нет необходимости в 100% -ном покрытии кода: нет, я не особо беспокоюсь о сохранении 100% -ного покрытия кода любой ценой.Однако в этих случаях методы, которые * имеют значение , отображаются как не охваченные в списке, и я должен пройти весь путь до дерева, чтобы увидеть, что это только они. Это проблема, которую япытаюсь добраться сюда - не 100% покрытие кода в целом.