Софтуерно Инженерство
Loading...
djc_bg2015 avatar djc_bg2015 922 Точки

[Въпрос] ExpectedException не покрива na 100% ?

Та, захванах домашното от лекцията за юнит тестване.

Написах тстове за всички публични методи (включтително и тестове които да изтества на 100% правет метода за махане на нод, през публичния метод RemoveAt).

Накрая, като пусна dotCover ми изписва че съм покрил 97% от кода, като липсващите 3 процента идват от трите юнит теста, който проверяват дали ексепшън е хвърлен.

Ето и скрийншот на единия метод:

Въпроса ми е, как мога да покрия тези 3%?

В stackoverflow намерих 1-2 теми в които се предлага следното решение:

Слагаме кода, който ще хвърля ексепшъна в try/catch, прихващаме го и сетваме някаква променлива и после с Assert.Equals проверяваме дали е сетната въпросната променлива. Но това леко обезсисля ExpectedException атрибута. 

0
C# OOP Advanced
RoYaL avatar RoYaL SoftUni Team Trainer 6883 Точки
Best Answer

Здравей,

Мисля, че dotCover просто не е направен да го разбира това с VSTT. Ако не искаш да го хакваш, вариантът ти е да използваш платената версия на VS, където код кавъриджа го покрива това. Другият вариант е вместо VSTT да ползваш NUnit. Там има Assert.Throws.

2