ПредишенСледващото

Какво е QUnit

Ако не сте запознати с идеята за "единица тестване", не се притеснявайте - няма нищо по-трудно да се разбере:

"Звено тестване или единица тестване (на английски единица тестване.) - в процеса на програмиране, който позволява да се провери коректността на отделните модули с код идеята на програмата източник е да се пишат тестове за всеки нетривиален функция или метод Тя ви позволява бързо да се провери, за да видите .. е друга промяна доведе до регресия на кода. т.е. до грешки в вече изпитани части на програмата, както и улеснява откриването и премахването на грешки. "

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

Защо да тествате вашия код

Ако никога не са писали единица тестове преди, това е най-вероятно просто поставете кода си директно на уеб сървъра, изтича това, гледах дисплея на грешка и се опита да ги отстранят, тъй като те са открити. Този метод на работа води до много проблеми.

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

На второ място, всичко, което се прави за такъв тест не може да се използва повторно. С този метод е много трудно да се намери регресия. Какво е регресия? Представете си, че вие ​​сте написали някакъв код и тествани него, коригирайте всички грешки, които се намират и поставили кода в сайта си. Потребителят е изпратил преглед на нови грешки и да поиска нови функции. Можете да се върнете към кода, да коригират грешки и добавяне на нови възможности. Това може да е ситуация, когато старите грешки се случват отново, което се нарича "регресия". Отново ще трябва да се провери всичко. И има шанс, че няма да намери старите си грешки. Във всеки случай, това ще отнеме време, преди да можете да се досетите, че проблемът е причинен от "регресия". При използване на теста за единица, пишете на теста. След като кодът се променя, вие отново се чрез филтриране с теста. Esli регресия проявява, че някои тестове не преминават, и лесно можете да определите коя част от кода съдържа грешка. Е, как да се знае, че са се променили, а след това грешката е лесно да се определи.

Друго предимство на единица тестване (особено за уеб програмиране) е, че е лесно да се провери съвместимостта на различни браузъри. Ти просто трябва да стартирате тестовете в различни браузъри. Ако откриете проблем в браузъра ви, тогава вие ще бъдете в състояние да ги отстраним и изпълнете теста отново. В резултат на това вие ще бъдете сигурни, че всички целеви браузъри се поддържат, тъй като всички те са били тествани.

Как да пишем на тестове в QUnit

И така, как ти пиша единица тестове директно в QUnit? Първата стъпка е да инсталирате тестовата среда:

Код, за да бъдат тествани се поставя в myProject.js файл. и тестото се поставя в myTests.js. За да стартирате тестовете, просто трябва да се отвори HTML файл в браузъра. Сега е време да пиша някакъв тест.

Градивните елементи на единица тестване е твърдението.

"Приемане - израз, който прогнозира резултата от завръщане в работата на вашия код Ако прогнозата е неправилно, тогава твърдението е погрешно, която ви позволява да се направят изводи за наличието на грешки ..."

За да изпълни исканията им трябва да се поставят в устройството за изпитване:

Тук ние определяме функция ISEVEN. който проверява съотношение на броя, а ние искаме да се уверите, че тази функция не се връщат стойности за грешки.

На първо място, ние наричаме (функцията за тест). който е изграждането на тестова единица. Първият параметър е низ, който ще се появи като резултат. Вторият вариант - функцията за обратно повикване, която съдържа нашето одобрение. Тази функция се обръща към един път при извършване на QUnit.

Писахме пет твърдения са логични. Логически изявление предполага, че първият аргумент е вярно. Вторият вариант - съобщение, което се показва в резултата.

Това е, което ние получаваме след теста:

Как да се тества JavaScript код, използвайки qunit

Всички наши претенции успешно потвърдиха, така че можем да предположим, че ISEVEN () функция работи както се очаква.

Нека да видим какво ще се случи, ако изявлението е неправилно.

И това е това, което получаваме в резултат на теста:

Как да се тества JavaScript код, използвайки qunit

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

други обвинения

ОК () не е единственият документ, в който поддържа QUnit. Има и други видове отчети, които са полезни в подготовката на тестове за вашите проекти:

Сравнение на одобрен

Приемане на равен на сравнение () приема, че първият параметър (което е действителната стойност) е еквивалентен на втория параметър (което е очакваната стойност). Това твърдение е много подобен на ОК (). но извежда и двете стойности - действителното и очакваното, което значително улеснява отстраняването на грешки код. Както и ОК (). се равнява на (), може да получите съобщение за изход като трети параметър.

Как да се тества JavaScript код, използвайки qunit

Как да се тества JavaScript код, използвайки qunit

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

И ако стойностите не са равни:

Как да се тества JavaScript код, използвайки qunit

Този пост дава повече информация.

Сравнение на одобрен използва "==" за да проверите настройките, така че не може да работи с масиви или обекти:

За такива случаи QUnit е утвърждаване на идентичността.

предявяване на самоличност

Одобряване на същата идентичност () използва същите параметри като равенство (). но тя работи не само с примитивни видове, но и с масиви и обекти. Одобрение от предишния пример ще бъде тествана, ако промяната в самоличността на твърдения:

Имайте предвид, че един и същ () използва оператора "===" за сравнение, така че това е полезно за сравняване конкретни стойности:

Структурата на отчети

За да поставите всички изявления в един тест - много лоша идея. Такъв тест ще бъде трудно да се поддържа и може да бъде объркващо, за да се оцени нейната ефективност. Ето защо е необходимо да се структурира на теста от включването на изявление в отделни блокове, всеки от които ще се фокусират върху определена група от функции.

Можете да организирате отделни модули с помощта на модул функция повикването.

Как да се тества JavaScript код, използвайки qunit

асинхронно изпитване

В предишния пример, всички изявления се наричат ​​синхронно, т.е. извършват една след друга. В реалния свят има много на асинхронни функции, като например искания AJAX или setTimeout () и setInterval (). Как да тествате този вид функция? QUnit има специален вид тест, който се нарича "асинхронен тест" и е предназначена за асинхронни изпитвания:

Първо, опитайте се да пишете на теста по обичайния начин:

Как да се тества JavaScript код, използвайки qunit

Изглежда, че не съществува тест твърдения. Тъй като условието е синхронно, но по време на повикване функционалния тест е завършена.

правилния тест нашия пример е за:

Как да се тества JavaScript код, използвайки qunit

Ние използвахме стоп-функцията (), за да прекрати теста, и след одобрението на теста се кандидатира отново с помощта на старта ().

Функция повикване спирка () веднага след изпитването на функцията () е много често срещана практика. Затова QUnit има специално намаление: asyncTest (). В предишния пример може да бъде пренаписана, като:

Има един момент, в който си струва да се има предвид: функция на setTimeout () винаги призовава своята функция за обратно повикване, като че ли да се тества и друга функция (например, AJAX разговор). Как да бъдете сигурни, че функцията за обратно извикване ще се нарича? функция Ако функцията за обратно повикване не се нарича, започнете () също ще бъде оставен без да се поставя на целия тест "podvisnet":

Как да се тества JavaScript код, използвайки qunit

Можете да организирате теста, както следва:

Функцията за спиране () се предава стойността на изчакване. Сега QUnit бил инструктиран: "Ако функцията за стартиране () няма да се нарича период на изчакване, изпитването трябва да се разглежда потъналия". Сега целият тест не е "podvisnet" и предупреждение ще се издава, ако нещо се обърка, колкото би трябвало.

А сега да разгледаме случая на множествена асинхронен функция. Къде да поставите функцията старт (). Необходимо е да го поставите в (функция за setTimeout).

Стойността на изчакване трябва да бъде достатъчна, за да извършите обаждане функции както връщане, преди да продължи теста. Ако една от функциите няма да се нарича, как да се определи кой от тях? За тази цел има очакваме функция ().

Минаваме през функцията очакваме (), броят на исковете, които са планирани да се извърши. Ако една от декларациите не е спазено, ще получите съобщение, че нещо не е както е планирано.

Има кратък запис за използването на очаквате (). планирано количество трябва да бъде предадена в претенциите като второто изпитване параметър () или asyncTest ().

заключение

В този урок ние донесе всичко, което трябва да се започне с QUnit. Unit тестване - един чудесен начин да се тества кода, преди да я използвате. Ако никога не сте използвали тестове, че е време да започне.

Как да се тества JavaScript код, използвайки qunit

До получаване на информация от два канала (зрение и слух) на ефективността на обучението далеч по-добър живот от книги. А домашните задачи и онлайн тестове ще ви позволи да мисля постоянно в целевия език и веднага провери знанията си!

Как да се тества JavaScript код, използвайки qunit

Как да се тества JavaScript код, използвайки qunit

Ако искате по-дълго време, за да проучи как да се HTML, че ме има, за което трябва добра новина!

Как да се тества JavaScript код, използвайки qunit

Ако вече сте се научили HTML и искат да се движи напред, следващата стъпка ще бъде да се проучи CSS технологията.

Как да се тества JavaScript код, използвайки qunit

Ако искате да се разбере концепцията на домейн и хостинг, да научат как да се създаде база данни, да качвате файлове към уеб сайт чрез FTP сървър, създаване на поддомейни, да конфигурирате пощенските кутии за сайта и мониторинг на посещаемостта, този курс е разработен специално за вас!

Подкрепете проекта - споделете линка, благодаря!