Звено тестване в Visual Studio използване NUnit и nsubstitute

Звено тестване в Visual Studio използване NUnit и nsubstitute
Test Driven IOS развитие - прочетете, преди всичко, и за съжаление не са имали време да се приложи на практика, тъй като веднага трябваше да се справи първо с развитието на сайта, а след това C # проекта, толкова много време да ерозира от главата. Като се върна към развитие IOS ще трябва да прочетете отново или поне скочи наоколо. Всъщност, голяма моя проект IOS, която започна като прототип и в крайна сметка се превърна в пълен почти готов за проект AppStore и ме насърчи да седне зад проучването на отдел за тестване на. След проектиране куца във всички четири крайника (и в действителност умни хора пишат не е напразно - тестван направи прототип, - хвърли прототипа и пишат от нулата), за възможността за тестване, казвам нищо. Но не мисля, че тя е написана така или иначе. Опитвам се да пиша нормално, но между добра идея да се направи тест код и пишат на теста е само безкрайната бездна. И в книгата - Аз препоръчвам, че е доста последователен, с много примери. Разбира се, аз го препоръчват главно IOS разработчици, защото много материал се отнася конкретно до Цел-C и какао формулировка. Без набор от изпълнение на код и да се осигури материал от средата на книгата, аз започна да потъва. Но все пак това само показва дълбочината на материалите, представени.
Послепис Още в процеса на писане, за да видите, че той е оставен на българския превод на книгата.
Звено тестване в Visual Studio използване NUnit и nsubstitute
Разработка чрез тестове за IOS. и да го има и електронен вариант и на хартия. Аз самият не го чете, така че качеството на превода не може да се оцени

Звено тестване в Visual Studio използване NUnit и nsubstitute
Изкуството на Звено тестване - една хубава книга, за да се разберат основите на темата. Но по мое мнение той не притежава практически примери. Все пак силно препоръчвам да се започне с нея. След това вземете един прост клас, че няма специални външни зависимости и да се опита да покрие тестовете. В идеалния случай, опитайте се да веднага TDD (Test Drive развитие). Направих това, за първи клас, необходими за мен, за първи път, пише тестовете, и едва след това писане на код. Това, което ме порази - благодарение на тестове - дори преди интегрирането на новата класа на реалната система - почти всички недостатъци са били уловени. При проектирането на такъв втори клас в ограничен период от време (както винаги), аз арогантно реши, че тестовете вече не могат да пишат. В резултат на това получих не няколко много приятни грешки, прекарал повече време, отколкото ако тестовете за писане веднага. И тогава реших да се тестове на сериозно.

защото Тази книга е написана за по същество C # програмисти, именно защото бе последвано от избор на библиотеките NUnit, NSubstitute. същото се оставя непроменен именуване система.

Звено тестване в Visual Studio използване NUnit и nsubstitute
Ефективната работа с наследството код - книга по-сериозно по отношение на обема и подаване на материал по-тежък секунда. И плюс и минус, че за разлика от предишните примери, обсъждани тук в продължение на няколко езика: Java, C ++, C Съветвам ви да прочетете спомените.

Така че, може би това ще започне. Аз ще ви кажа как да се създаде Visual Studio да пишат тестове, както и 3 примера. Първият - в тази статия е просто и скалъпен да даде основата. Във втората част ще бъде сравнително прост пример, не забравяйте, как тестовете, обхванати за първи път. В третата част на статията е пример за по-сложно и ми ще да пишат паралелно код. За да стане ясно, че не богове горят саксии.

На първо място, трябва да инсталирате NUnit. но да се започне е разположен в VisualStudio - NuGet. Това разширение ви позволява да инсталирате пакети в една команда от конзолата.
Open Visual Studio. и изберете Инструменти | Разширенията и актуализации (преди това е бил Extension Manager)

Звено тестване в Visual Studio използване NUnit и nsubstitute

Звено тестване в Visual Studio използване NUnit и nsubstitute

Можете също да инсталирате NUnit Тест адаптер - интеграционни тестове работят в студиото (макар че аз използвам Resharper така че аз не особено искат.)
Макар че аз не препоръчваме да инсталирате Unit Test Generator. Четох за проблема в прегледа, но не обръщат внимание. След инсталацията - престава да работи преход в клас / метод за изпълнение на Ctrl + Click. Проблемът изчезна веднага след отстраняването на тапа.

Така че сега ние имаме NuGet. но ние се нуждаем NUnit (аз ще използвам тази рамка, вместо вградения Visual Studio), заедно с NSubstitute.

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

Звено тестване в Visual Studio използване NUnit и nsubstitute

Сега се създаде проект, който съдържа единица тестове за нашия проект

Звено тестване в Visual Studio използване NUnit и nsubstitute

Предписва име на проекта

Звено тестване в Visual Studio използване NUnit и nsubstitute

Забележете, че на мястото, аз отидох до по-високо ниво, който първоначално е бил препоръчаха ми да създадете елемент с проект тестове вътре в папка с проекта.

Както написах по-горе, име конвенция ще бъде взето от книгата Изкуството на Звено тестване. За да назовем само тестове на проекта е следната - <Тестируемый проект>.UnitTests. По този начин ние сме един проект с тестовете ще бъдат призовани SampleProject.UnitTests

След създаването SampleProject.UnitTests проект - отваряне на файл, създаден UntTest1.cs

Звено тестване в Visual Studio използване NUnit и nsubstitute

Както виждаме сега използва вграден рамка VisualStudio тестване. Това може да бъде разбрано по атрибути - клас [Тест]. в метод [TestMetod]. Ние искаме да използваме NUnit които вместо тези други атрибути [TestFixture] и [Test] съответно. Нека се опитаме да се промени, но те са подчертани в червено, защото докато VisualStudio за тях не се знае нищо.

Звено тестване в Visual Studio използване NUnit и nsubstitute

Отворете конзолата NuGet

Звено тестване в Visual Studio използване NUnit и nsubstitute

И получи команда
Инсталирайте Пакет NUnit
и след това
Инсталирайте Пакет NSubstitute

ВАЖНО: Не забравяйте да изберете проекта по подразбиране като вашия проект с единица тестове, а не с програмата. В противен случай, библиотеката ще бъде настроен на грешната проекта.

Звено тестване в Visual Studio използване NUnit и nsubstitute

Добави в UnitTest1 -
използване NUnit.Framework;

и ние виждаме, че компилаторът сега смятат, че нашите качества, като се използват стари могат да бъдат отстранени (използвайки Microsoft.VisualStudio.TestTools.UnitTesting)

Надявам се да прочетете книгата Изкуството на Звено тестване, или просто нямате представа как се работи в общи линии с NUnit. защото дълбоко основание не планирам да се обясни малко по-формат статия.

Ако сме наистина кратък - най-важното в единица тест - това е декларация за истинността на предположението (отстояват).
Ще създаде в главната папка на проекта SampleProject Utilites и да се създаде там IAccount интерфейс (папка е създадена за визуално разделяне на класове и не е задължително)

Първоначално се обадих метод GetAccountId_InititalizedObject_ReturnCorrectId. след това преименувана
GetAccountId_WasInitializedWithId_ReturnSameId

Започваме да създаде код за профила
Сметка сметка = нов профил ();
и да видим грешката, нашите тестове единични проекта е все още знаят за проекта за изпитване
добре, че е необходимо да се добави препратка към оригиналния SampleProject. повикване разговор

Звено тестване в Visual Studio използване NUnit и nsubstitute

И ние избираме нашия проект

Звено тестване в Visual Studio използване NUnit и nsubstitute

След това добавете AccountTests на класа, използващи SampleProject.Utilites; и започва да компилирате кода

добавя кода, трябва да получите нещо подобно

В момента тече теста (пускам с помощта на runner'a Resharper., Но има безплатно решение, същата NUnit Тест адаптер., Който работи по този начин :)

Звено тестване в Visual Studio използване NUnit и nsubstitute

и ние виждаме, че тя преминава

Звено тестване в Visual Studio използване NUnit и nsubstitute

Какъв е теста? Ние създаваме обект Сметка. инициализиране на номера му. и след това Assert.AreEqual команда (account.GetAccountId (), initId); Ние се провери дали GetAccountId () метод се връща на същата стойност, която е най-инициализация.

Ако искате да видите как тестът е неуспешен, промяна на линия, за да се провери за

Assert.AreEqual (account.GetAccountId (), 0);
един
Assert.AreNotEqual (account.GetAccountId (), initId);

По принцип на работа, въпреки че е твърде проста и пресилено. Аз питам малко търпение.
Нека да се справят с това, какво по NSubstitute
Най-трудната част е може би в единица тестване "д - е да се работи с обекти, които не са тествани. Представете си, че в метод GetAccountId (), за да всъщност изпълнява стотици реда код, плати на мрежата за достъп до базата данни, и подобни неща. Не е най-весело перспективата за всичко, разнасящ в UnitTest'ah. да бъде лек и бърз, така че, в идеалния случай, най-малко на всеки компилация от техния план и да се уверите, че кодът не е счупена, както е изменен. Позоваването на мрежова файлова система -
а) изискват конфигурация
б) могат да заемат значителна време
в) по същество са интеграционни тестове, които също са важни, но сега не е за тях.

Какво е решението - разбира се лъжа и да се замени всичко, което се намира извън нашия контрол) Създаване на фалшив. Тъп. Мъниче обекти. Обектите, които реализират интерфейса, но в действителност това, което е казал.