Професионална програма
Loading...
+ Нов въпрос
a.polyanska avatar a.polyanska 107 Точки

[Homework] КПК - Компонентно тестване

Здравейте,

Боря се със домашното за юнит тестовете. Като цяло уж ми е ясна материята и нещата са логични, но нещо още ми е мътно и  не се доразбирам с Visual Studio-то и ще съм благодарна на малко помощ от по-разбиращите. Ето тестовете на DynamicList-овете от условието: тук

 

Първото ми питане е: Как се тестват пропъртитата? Нещо не мога да включа в контекста на тестовете как да стане.

Второ: Уж всички тестове минават, а когато поискам code coverage ми дава 0%. Излиза ми това съобщение: "Empty results generated: No binaries were instrumented. Make sure the tests ran, required binaries were loaded, had matching symbol files, and were not excluded through custom settings." Кое пропускам?

И трето: В част от тестовете съм сложила messages, но по някаква причина те не излизат, когато задам грешен тест. Някой знае ли коя е тази някаква причина? :)

 

0
C# OOP Advanced 30/03/2015 12:07:26
Filkolev avatar Filkolev 4485 Точки

Колежке,

Извинявай, че се намесвам в темата, но искам и аз да задам един въпрос. Някой намерил ли е безплатен user friendly code coverage tool за VS Community?

Бях чул, че СофтУни има лицензи за всички продукти на JetBrains, а те имат ето това:  https://www.jetbrains.com/dotcover/

Имаме ли наличен лиценз за него? 

Относно тестването на пропъртитата, просто правиш обект или сетваш негово поле на дадена стойност. Подаваш невалидна стойност и казваш, че очакваш ексепшън. Отвъд това не виждам какво има да им се тества. Точно списъка не е особено добър пример за тестване на пропъртита, понеже там имаш един масив и другото са методи за операции с него.

По втория въпрос, тук препоръчват да изтриеш .suo файла. Виж дали ще сработи.

1
Filkolev avatar Filkolev 4485 Точки

Малко се развали качеството на снимката, но се вижда, че при мен излиза съобщението на фейлнатия тест. Може би не гледаш където трябва?

Линк: http://prikachi.com/images/871/7936871L.jpg

1
a.polyanska avatar a.polyanska 107 Точки

Хм, сега тръгна това със съобщенията (на съвсем правилното място съм си гледала). Това, което е променено- не знам има ли общо- е, че изтрих .suo файла, за да тръгне code coverage-ът. Който, обаче, не тръгна....

0
a_rusenov avatar a_rusenov 1103 Точки

Това с 0% code coverage е наистина интересен проблем, от който се оплакаха няколко души след лекцията. Доколкото и аз се рових, открих, че трябва да изтриеш .suo файла, но изглежда не помага. Пробвай да създадеш друг solution + проект и виж дали и там дава 0%.

Относно тестването на пропъртита - тестваш ги дотам, доколкото е нужно (обикновено тестваш валидациите в сетърите с [ExpectedException]). Гетърите не се тестват дотолкова дали връщат правилни данни (особено ако е автоматичен гетър), а по-скоро да видиш дали някой друг метод работи правилно (както например тествахме Push() на стека, който е void и не връща резултат, като assert-вахме дали Count се увеличава). Сорс кодът от лекцията е качен в страницата на курса.

Лицензи за dotcover нямаме.

0
23/02/2015 20:33:43
a.polyanska avatar a.polyanska 107 Точки

Създадох си нов сълюшън и проект и копирах кода вътре (нали правилно съм разбрала инструкциите?) и резултатът е същият- 0% и туй то. Пак изтрих .suo файла и пак 0%.

Лекцията я изгледах внимателно, но, честно казано, и през ум не ми мина, че с различните тестове (Push()) тестваме и пропърти :) Благодаря за насоките и подробното обяснение.

0
a_rusenov avatar a_rusenov 1103 Точки

Добре, пробвай да изтеглиш решението от лекцията и виж дали и на чужд проект ще имаш 0%.

0
a.polyanska avatar a.polyanska 107 Точки

Пробвах, получава се същото. Ни дума, ни вопъл, ни процент над нула. Явно грешката е в моя телевизор. Да не трябва някакви допълнителни настройки да се правят?

0