Први кораци са Јасмином

Преглед садржаја
Данас је добро време да будете програмер ЈаваСцриптМоже се рећи да је чак узбудљиво јер су технологије које га обухватају прилично сазреле, веб прегледачи су стандардизованији и сваким даном се појављују све нове ствари са којима се може играти и експериментисати.
ЈаваСцрипт је устаљени језик, а веб је данас главна платформа на којој смо видели појаву апликација за једну страницу, ширење МВЦ оквира, као што је АнгуларЈС или Бацкбоне.јс, користећи ЈаваСцрипт на страни сервера са Ноде.јс па чак и мобилне апликације направљене искључиво помоћу ХТМЛ, ЦСС И ЈаваСцрипт са технологијама попут ПхонеГап.
ЈаваСцрипт је од својих скромних почетака био задужен да служи као језик за манипулацију подацима и њихову проверу у обрасцима у ХТМЛ и тренутно се користи за израду моћних апликација које можемо видети на вебу. Гледајући ово може се рећи ЈаваСцрипт Прешли смо дуг пут, као и алати који су се појавили како би осигурали да имамо исти квалитет као да смо на другим језицима.
Један од ових алата је Јасмине, који није ништа друго до развојни оквир оријентисан на понашање и који нам омогућава креирање аутоматизованих јединичних тестова за програмски језик ЈаваСцрипт. Пре него што у потпуности уђемо са овим алатом, да видимо позадину која је довела до његовог развоја, као и кључне концепте да бисмо разумели како функционише ЈаваСцрипт.
Данас нико не сумња у моћ ЈаваСцриптМеђутим, постоје компликације при раду на страни клијента и један од очигледних разлога је тај што не можемо контролисати његово окружење за извршавање. На серверу немамо овај проблем јер можемо покренути одређену верзију Ноде.јс али у случају веб прегледача не можемо рећи кориснику да користи одређену верзију Хром или Фирефок.
Језик ЈаваСцрипт је дефинисано у спецификацијама ЕЦМАСцрипт тако да сваки прегледач може имати своју имплементацију окружења за његово покретање, узрокујући мале разлике или грешке међу њима. Сваки објекат ЈаваСцрипт променљив је, тако да немамо никакву контролу која спречава модул да замени друге делове, да то илуструјемо, погледајмо мали сегмент кода где можемо видети како је лако преписати глобалну функцију цонсоле.лог:
 цонсоле.лог ('тест'); цонсоле.лог = 'бреак'; цонсоле.лог ('тест');
Погледајмо одговор помоћу конзоле, где можемо јасно видети грешку пошто смо преписали функцију:

Овакав начин постојања језика била је одлука која је донета у његовом дизајну, јер је омогућила програмерима да му додају недостајуће функционалности, али с обзиром на ову свестраност релативно је лакше направити грешке, чак је и новија верзија језика увела функција Објецт.сеал што је то спречило, али се његова подршка проширила само на неколико прегледача.
Још један проблем са којим се представљамо ЈаваСцрипт је руковање типовима, у другим језицима израз попут '1' + 1 ће вероватно изазвати грешку, али у ЈаваСцрипт ово би резултирало 11. Ово може довести до неколико тешко пронаћи проблема, на пример претпоставимо да имамо следеће:
 вар а = 1, б = '5', ц = 4, д = 2; вар резултат = а + б + ц * д; цонсоле.лог (резултат);
Хајде да видимо одговор преко конзоле када покренемо наш код у прегледачу:

Као што видимо, резултат је био низ, па ако смо очекивали број у посебној функцији или рутини, то може узроковати проблем, а проналажење ове грешке може значити губљење неколико сати нашег драгоцјеног развојног времена.
Важно је напоменути да тачке које смо управо поменули нису разлог да их не употребите ЈаваСцриптРади се само о томе да видимо где има неких слабости, али то не значи да је то лош језик, можемо чак и уверити да су могућности које нам представља бесконачне у смислу развоја апликација и што је боље, још увек имамо алате који ми ћемо им помоћи најбољим праксама истих.
Као што смо поменули, Јасмине То је мали оквир који нам помаже у нашим јединственим тестовима у оквиру нашег развоја и који користи филозофију развоја оријентисаног на понашање коју ћемо објаснити касније, али пре него што наставимо да видимо важан концепт, а то је да су то јединични тестови.
Јединствени тестовиТхе јединични тестови То су делови кода који тестирају функционалности јединица у коду наше апликације, који је на почетку овог пута програмерима оставио традиционалну филозофију која се фокусирала на развој оријентисан на тестирање уместо на понашање.
Зато су творци Јасмине они реструктурирају овај традиционални начин тестирања, у коме је програмер остао без јасне слике одакле да почне у процесу тестирања, не знајући шта да тестира и колико би велики тестни модул могао бити или чак како би назвали један од ових тестова . На пример, ако користимо филозофију Јасмине Да бисмо извршили тестове, претпоставимо да имамо музички плејер који ће имати следеће критеријуме прихватања: С обзиром на плејер, када је песма паузирана, играч мора назначити да је песма паузирана.
Дакле, можемо узети критеријум и поделити га на следећи начин:
  • Дато (почетни контекст)
  • Када (Догађај се догоди)
  • Затим (предузима се радња)
Јасмине омогућава нам да преведемо горе наведено у код који ће бити написан на начин да без проблема одражава вредности наше апликације, што може изгледати овако:
 десцриптион ("Плаиер", фунцтион () {опиши ("Кад је песма паузирана", фунцтион () {ит ("Мора да означава да је песма паузирана", фунцтион () {});});});
Као што видимо наши критеријуми су пренети на Јасмине без већих проблема, где можемо рећи да је сваки критеријум преведен у јединични тест.
Већ смо могли да погледамо како Јасмине обрађује критеријуме и преводи их у своју синтаксу стварајући јединичне тестове за њега, али да бисмо тамо стигли, прво да видимо како прво доћи до оквира. Да бисмо то урадили, идемо на страницу пројекта и преузимамо је:

ЕНЛАРГЕ

Приликом распакивања морамо отићи у фасциклу дист, тамо ћемо пронаћи све дистрибуције Јасмине до данас, где да почнемо да га користимо, морамо изабрати жељену дистрибуцију, по могућности најновију и распаковати је у фасцикли нашег пројекта, унети фасциклу и извршити датотеку СпецРуннер.хтмл:

Јасмине Укључује подразумевано неке примере неких јединичних тестова, где датотека СпецРуннер.хтмл је задужен за повезивање Јасмине кода који укључује изворне датотеке и датотеке за тестирање, да видимо његов садржај:
 Јасмине Спец Руннер в2.2.0 
Као што видимо, прилично је једноставно и омогућава нам да дефинишемо основну структуру за наше тестове, дајући нам помоћ о томе одакле да почнемо у овом свету јединичних тестова. Подразумева се да је добра идеја погледати код наше дистрибуције Јасмине како бисмо се упознали са начином рада.
Важно је то напоменути Јасмине не само да је ограничен на код написан чистим ЈаваСцриптом, већ можемо и да тестирамо оне апликације направљене помоћу Бацкбоне.јс или АнгуларЈС, чак и његова свестраност иде много даље и омогућава нам да изводимо тестове на страни сервера у случају да користимо Ноде.јс.
ПрепорукаЈасмине То је оквир који нам много помаже у начину јединичних тестова, међутим концепти који се у њему користе нису тако једноставни, подржани су одређеним напредним праксама ЈаваСцрипт као што је генерисање ХТМЛ -а помоћу функције цреатеДом () да бисмо у њега убацили елементе, поменули неке од ових карактеристика, па препоручујемо да се прошетате кроз документацију о ЈаваСцрипт бити много спремнији за будуће водиче.
Овим смо завршили овај водич где смо могли да направимо прве кораке Јасмине, пролазећи кроз мотивацију стварања алата за тестирање ЈаваСцрипт и како нам развој оријентисан на понашање помаже у стварању бољих тестова, такође видећи како Јасмине је прилично флексибилан оквир за тестирање који нам омогућава да користимо исту инстанцу за тестирање свих врста кода у ЈаваСцрипт у нашим апликацијама.
wave wave wave wave wave