Programavimas

10 patikimų „JavaScript“ testavimo įrankių

Būtinybė išbandyti „JavaScript“ kodą yra paprasta. Kaip kitaip išvengti klaidų ir užtikrinti, kad programos sklandžiai veiktų naršyklėje ar „Node.js“? Laimei, kūrėjai turi daugybę galimybių, susijusių su „JavaScript“ testavimu.

Testavimo bėgikai ir vienetų testavimo, integravimo testavimo ir funkcinių bandymų pagrindai yra lengvai prieinami „JavaScript“ ekosistemai, aprėpiant „Node.js“ ir naršykles, taip pat „Angular“ ir „React“ sistemas. Toliau pateikiami 10 iš daugelio dėmesio vertų variantų, kuriuos „JavaScript“ kūrėjai turi padėti išbandyti savo programas.

AVA

AVA yra „Node.js“ bandomasis bėgikas, siūlantis glaustą API, išsamią klaidų išvestį ir palaikymą naujoms kalbos funkcijoms bei procesų izoliavimui. AVA geriausiai tinka „Node.js“ moduliams ir serverio programoms testuoti, bet galbūt netinka vartotojo sąsajos programoms. Tarp savo galimybių AVA siūlo funkciją, skirtą pažymėti testą kaip užduotį, kurią reikia atlikti. Kiekvienas bandymo failo paleidimas yra atskiras procesas. Kiti paminėti privalumai yra AVA minimalizmas ir greitis, paprasta testo sintaksė ir galimybė vienu metu vykdyti testus. AVA taip pat palaiko asinchronines funkcijas ir stebimus elementus - pastebimas tipas, kuris gali būti naudojamas modeliuoti duomenų šaltinius, pvz., DOM įvykius.

Įdiekite AVA

AVA diegimo instrukcijas galite rasti projekto „GitHub“ puslapyje.

Agurkas.js

„Cucumber“ testavimo įrankio „Cucumber.js“ „JavaScript“ diegimas veikia palaikomose „Node.js“ versijose ir šiuolaikinėse interneto naršyklėse. „Agurkų“ projekte nurodomi pranašumai, įskaitant komandos ryšius ir galimybę vykdyti automatizuotus testus, parašytus „paprasta“ kalba, o tai reiškia, kad visi komandos nariai gali juos perskaityti. Taigi galima pagerinti bendravimą, bendradarbiavimą ir pasitikėjimą. Cucumber.js yra vykdomasis failas, skirtas paleisti jūsų bandomuosius rinkinius (vadinamus funkcijomis), todėl neveikia, kai jie įdiegiami visame pasaulyje. (Agurkai turi būti reikalingi palaikymo failuose, o visame pasaulyje įdiegtų modulių nereikia.)

Įdiekite „Cucumber.js“

„Cucumber.js“ diegimo instrukcijos pateikiamos „GitHub“.

Fermentas

Enzimas yra „React JavaScript“ vartotojo sąsajos bibliotekos testavimo įrankis. Jis skirtas palengvinti „React“ komponentų išvesties testavimą. Kūrėjai gali manipuliuoti, važiuoti ir imituoti vykdymo laiką, atsižvelgiant į išvestį. Fermentų API imituoja „jQuery“ API DOM manipuliavimui ir perėjimui. Fermentas nėra pasakytas apie bandomąjį bėgiklį ar teiginių biblioteką. Jei kūrėjai nori naudoti „Enzyme“ su pasirinktiniais teiginiais ir patogumo funkcijomis, norėdami išbandyti „React“ komponentus, jie gali tai apsvarstyti chai-fermentas su Mocha / Chai, jazmino fermentas su Jasmine, arba jest-fermentas su Jestu. Fermentas taip pat gali būti naudojamas „React Native“ komponentams tirti.

Įdiekite fermentą

Fermento diegimo instrukcijas galite rasti „GitHub“.

Karma

„Karma“ yra bandomasis „JavaScript“ bėgikas, leidžiantis vykdyti kodą keliose naršyklėse. Palaikomos visos pagrindinės naršyklės, įskaitant naršykles mobiliesiems. Projekto kūrėjai sako, kad „Karma“ siūlo aplinką, kurioje kūrėjams nereikia nustatyti daugybės konfigūracijų, tačiau jie gali rašyti kodą ir gauti testų grįžtamąjį ryšį. „Karma“ skirta žemo lygio (vieneto) bandymams atlikti. Ne testavimo sistema ar tvirtinimų biblioteka, „Karma“ paleidžia HTTP serverį ir sukuria bandomojo bėgimo failą iš mėgstamiausios kūrėjo testavimo sistemos. Siūlomi papildiniai tokioms sistemoms kaip „Jasmine“, „Mocha“ ir „QUnit“.

Įdiekite „Karma“

„Karma“ diegimo instrukcijos pateikiamos „GitHub“.

Jasmine

„Jasmine“ yra apmokestinama kaip „elgesio sąlygota“ „JavaScript“ testavimo sistema. Jis nepriklauso nuo kitų „JavaScript“ rėmų ir jam nereikia DOM. Jos šalininkai nurodo savo sintaksę, kuri leidžia lengvai rašyti testus. „Jasmine“, kurį prižiūri „Pivotal Labs“, tinkamas testuoti svetaines, „Node.js“ projektus ir visa kita, kur galima paleisti „JavaScript“. „Jasmine“ skirta lengvai išbandyti įvairius naudojimo atvejus ir naršykles. Tai yra „JavaScript“ pagrindų agnostika, leidžianti kūrėjams išbandyti „React“ arba „Angular“ ar bet kurios kitos „JavaScript“ bibliotekos kodą. Jasmine siekia minimalių priklausomybių, tačiau lieka maža ir prižiūrima.

Įdiekite „Jasmine“

Jasmine įdiegimo ir naudojimo pradžios instrukcijas rasite „GitHub“.

Jest

„Jest“ yra apmokestinamas kaip išsamus „JavaScript“ testavimo sprendimas, kuris daugumai „JavaScript“ projektų veikia be dėžutės, be konfigūracijos. Testai turi unikalią pasaulinę būseną ir gali būti atliekami lygiagrečiai. Anksčiau nepavykę bandymai vykdomi pirmiausia, o pertvarkymai pertvarkomi atsižvelgiant į bandymo failų ilgį. Tiesiog veikia su populiariomis „JavaScript“ technologijomis, įskaitant „Angular“, „Babel“, „Node.js“, „React“ ir „Vue“. Testai gali būti atliekami, kad būtų galima stebėti didelius objektus, kai nuotraukos yra kartu su bandymais arba įterptos įterptinės. Bandomuosiuose failuose „Jest“ pateikia metodus ir objektus į pasaulinę aplinką, jų nereikia importuoti.

Įdiekite „Jest“

„Jest“ diegimo instrukcijas galite rasti „GitHub“.

Luna

„Luna“ yra nuomonių turinti „JavaScript“ bandymų sistema, kurios nereikia konfigūruoti. Kūrėjai gali išbandyti pirmuosius vieneto testus per kelias minutes, teigiama produkto dokumentacijoje. Kodo aprėpties ataskaitos generuojamos neįdiegus jokių kitų modulių. Testai turi būti parašyti kaip ES6 moduliai, testai pagal numatytuosius nustatymus atliekami naršyklėje. Palaikomas lygiagretumas, testavimo grupės vykdomos lygiagrečiai. „Luna“ iš dalies įkvėpė integruotas „Google“ Go kalbos testavimas. „Luna“ netelpa į transliaciją, todėl neveiks su „CoffeeScript“ ar „TypeScript“. Taip pat trūksta senesnių naršyklių palaikymo.

Įdiekite „Luna“

„Luna“ diegimo instrukcijos pateikiamos „GitHub“.

Mocha

Daug funkcijų turinti testavimo sistema, veikianti „Node.js“ ir naršyklėje, „Mocha“ žada, kad asinchroninio kodo testavimas bus „paprastas ir įdomus“. Testai vykdomi nuosekliai, kurie, šalininkų teigimu, leidžia tiksliai ir lanksčiai teikti ataskaitas, kartu atvaizduojant nepagautas tikslių bandymų atvejų išimtis. Nuolatiniam testavimui kūrėjai gali naudoti „Wallaby.js“ įrankį, kad įjungtų „Mocha“ kodo aprėptį realiuoju laiku su bet kuria tvirtinimų biblioteka. „Mocha“ taip pat integruojasi su programų sistemomis, pvz., Per „Konacha“, kuri leidžia kūrėjams naudoti „Mocha“ norint išbandyti „JavaScript“ programoje „Ruby on Rails“. Taip pat yra keletas redaktorių papildinių, pavyzdžiui, „Visual Studio Code“ šoninės juostos plėtinys „Mocha“.

Įdiekite „Mocha“

„Mocha“ diegimo instrukcijos ir daugelio „Mocha“ funkcijų dokumentai pateikiami projekto svetainėje.

Skydelis

„Protractor“ yra „Angular“ ir jo pirmtako „AngularJS“ testavimo sistema. Testai vykdomi naudojant programas naršyklėje, Proctractor sąveikaujant su programa taip, kaip naudotojas. Palaikomos kampinio lokatoriaus strategijos, skirtos bandyti kampinius elementus be jokios sąrankos. Automatinė laukimo galimybė leidžia „Protractor“ atlikti kitą bandymo veiksmą tuo metu, kai tinklalapis užbaigia laukiančius bandymus. Protractor buvo pastatytas ant „WebdriverJS“, „JavaScript“ įdiegto naršyklės automatikos įrankio „Selenium“, naudojamo bandymams atlikti.

Įdiekite sklendę

Instrukcijas, kaip įdiegti „Protractor“, rasite „Protractor“ svetainėje.

QUnit

„QUnit“ yra „JavaScript“ vieneto testavimo sistema, kurią naudoja „JQuery“, „jQuery UI“ ir „jQuery Mobile“ projektai. Tiesą sakant, „QUnit“ iš pradžių kaip „jQuery“ dalį sukūrė „jQuery“ išradėjas Johnas Resigas. Už „QUnit“ atsiskaitoma taip greitai ir lengvai, su sąlyga, kad ji yra apgalvota, bet plati ir išplėsta API, ir ją galima naudoti norint išbandyti bet kokį bendrą „JavaScript“ kodą. Kai bandymas ar tvirtinimas nepavyksta, „QUnit“ žada kuo greičiau pateikti atsiliepimą ir pakankamai išsamią problemą išsiaiškinti. „QUnit“ tvirtinimo metodai atitinka „CommonJS“ vieneto testavimo specifikaciją. „QUnit“ palaiko naršykles, palaikomas „jQuery 3.x“, įskaitant „Chrome“, „Edge“, „Firefox“, „Internet Explorer“ ir „Safari“ variantus.

Įdiekite QUnit

Galite atsisiųsti ir įdiegti QUnit iš QUnit svetainės arba jQuery.cdn.