Loading...
mbeleva88 avatar mbeleva88 69 Точки

[КПК] Unit-Testing - TestCleanup

Здравейте,

Тъй като не ми стана много ясно, моля някой да потвърди дали винаги трябва да имаме [TestCleanup] с някакъв метод Cleanup{ } например - в който нищо не пишем, ако няма никакви ресурси за затваряне?

Какво всъщност clean-ва, ако е празен метода?

Същият върпос и за ClassCleanup?

И общо взето всичко свързано с Cleanup attrubutes, което не съм се сетила да питам.

Благодаря предварително.

Тагове:
0
C# OOP Advanced 17/01/2016 23:55:44
KatyaMarincheva avatar KatyaMarincheva 572 Точки
Best Answer

Ето малко информация за използването на TestCleanup() и ClassCleanup()

https://softuni.bg/forum/5010/homework-kpk-unit-testing-2015

в този пост давам един примерен вариант, в който се ползват.

А иначе по смисъл: не са празни методи - пише се код в тях; идеята е, че често UnitTest-овете правят нови тестови записи в бази данни например (в най-простия пример е един List, към който добавяме и махаме елементи - за да проверим дали методите ни работят). Но понеже UnitTests се правят най-вече в реални бази данни, а тестовите записи са недействителни (например добавяме измислени потребители в базата данни на един сайт, за да видим дали се записват, как се сортират и т.н.) - след като свършим с тестовете, искаме тези недействителни записи да ги изтрием - това е идеята на TestCleanup() и ClassCleanup() - да държат сметка за въведените недействителни (тестови) данни, и след края на тестовете - да изтрият само тях.

3
Ivaylo.Goranov avatar Ivaylo.Goranov 68 Точки

Ами аз доколкото разбрах не е нужно да ползваш винаги нито [TestCleanup], нито [ClassCleanup]. В демо примера към лекцията са оставени без имплементация само като пример, ако поради тази причина ти възниква въпроса. Ако нямат имплементация, съответно нищо не следва да правят.
А иначе накратко, доколкото аз рабрах:
1. [ClassInitialize] изпълнява код преди останалия код в тестовия клас. Не се сещам за пример в момента.
2. [ClassCleanup] изпълнява код след останалия код в тестовия клас. Не се сещам за пример в момента.
3. [TestInitialize]] изпълнява код преди кода на всеки отделен метод в тестовия клас. Примерно можеш да инициализираш обект в метода с този атрибут, вместо да го инициализираш всеки път във всеки отделен метод.
4. [TestCleanup] изпълнява код след кода на всеки отделен метод в тестовия клас. Предполагам би било удобно при освобождаване на ресурси (пр. отворени файлове).

0
18/01/2016 00:08:06
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.