[Homework] КПК Unit-Testing 2015
Здравейте колеги,
аз си поиграх с това домашно - и опитах да добавя малко към класиката "Да живеят Filkolev и неговия GitHub!", т.е. добавих abstract class TestBase с public void TestCleanup() метод, така в основния DynamicListUnitTest клас имам [ClassInitialize], [TestInitialize], [TestCleanup] (от базовия клас), и [ClassCleanup].
Общо взето това си е cruel cleanup overkill, и не знам дали е необходимо в тази комбинация - просто се радвам че успях да разбера какво правят и да ги накарам да работят, което ми беше трудно определено.
Накратко DynamicListUnitTest клас си има public static DynamicList<string> DynamicList { get; set; } property.
И в началото, преди да почна с тестовете, казвам:
[ClassInitialize]
public static void DynamicListTestsInitialize(TestContext testContext)
{ DynamicList = new DynamicList<string>(); }
създавам инстанция на DynamicList<string>, с която работят всичките 25 теста после.
Това е ResetDynamicListObject(), който се пише веднъж, прави същото като DynamicListTestsInitialize(TestContext testContext) , но ResetDynamicListObject() минава преди всеки UnitTest - така не ми се случва да сложа в листа нещо и да забравя че е там от 20 реда насам:
[TestInitialize]
public void ResetDynamicListObject()
{ DynamicList = new DynamicList<string>(); }
Това пък e public void Cleanup() методът, който минава след всеки UnitTest, и каквото съм пълнила в листа, го изважда оттам (честно казано мисля че се дублира с ResetDynamicListObject() метода):
[TestCleanup]
public void Cleanup()
{ this.TestCleanup(); }
Накрая минава ClassCleanup() метода и след него би трябвало вече да няма инстанция на DynamicList??!!
/// <summary>
/// The class cleanup - returns the DynamicList object to not-initialized state.
/// </summary>
[ClassCleanup]
public static void ClassCleanup()
{ DynamicList.Clear(); }
Всякакви поправки са добре дошли - това че работи не значи че има смисъл да е чак толкова почистено ;)