L-ittestjar ta 'kull karatteristika (magħrufa wkoll bħala unità) huwa kritiku biex jiggarantixxi li kull funzjoni fil-programm tiffunzjona kif ippjanat. Fl-ittestjar, l-evalwazzjoni ta 'kapaċità partikolari vs programm sħiħ tarf sa tarf hija pjuttost differenti. L-ittestjar tal-unità jidħol fis-seħħ f'dan il-punt.
Angular huwa qafas JavaScript open-source, ibbażat fuq TypeScript. Peress li JavaScript huwa lingwaġġ ta 'programmar b'saħħtu użat biex jinbnew apps onlajn, huwa vitali li tifhem kif tagħmel ttestjar ta' unità fil-JavaScript. Dan l-artikolu se jesplora kif twettaq dawn it-testijiet, x'għandek tuża, u għaliex.
X'inhu Angolari?
Websajts moderni jużaw il-lingwa tal-kompjuter JavaScript (JS), li toffri bosta elementi interattivi li l-konsumaturi huma familjari magħhom. L-iżviluppaturi tal-web sikwit jiddependu fuq oqfsa JavaScript min-naħa tal-klijent għall-funzjonalità u biex iżommu l-websajts u l-assi onlajn jaħdmu b'mod korrett.
Angular hija teknoloġija li tipprovdi l-mezzi biex tiżviluppa applikazzjoni tal-web, tgħin fid-disinn, u torganizza l-kodiċi sottostanti. Fl-2010, Google ħarġet il-qafas JavaScript magħruf bħala AngularJS. Fiha karatteristika li tiffaċilita l-ħolqien ta' apps sinjuri u b'paġna waħda mill-iżviluppaturi. L-isem tal-verżjonijiet sussegwenti ta 'AngularJS huwa mqassar għal Angular.
Organizzazzjonijiet sinifikanti użaw Angular biex jibnu applikazzjonijiet, li ħafna minnhom saru marki mainstream. Bħal-
- Gmail
- YoutubeTV
- paypal
- Wix WebApps
- Microsoft web
- Upwork
- Freelancer
Għaliex għandek tittestja Angular Apps?
Il-validazzjoni ta’ funzjoni ta’ codebase Angolari skont il-funzjoni hija l-aktar approċċ effettiv biex tissaħħaħ il-kwalità tal-kodiċi, ikollhom inqas difetti fil-produzzjoni u inqas kodiċi mejjet, jimminimizzaw l-ispejjeż tal-manutenzjoni, u jwettaq refactoring aktar mgħaġġel u anke titjib mingħajr inkonsistenzi li jagħmlu ħsara lis-sistema kollha.
Inizjalment, jista 'jidher bil-mod, iżda jħallas fit-tul. Matul il-proċess ta 'żvilupp, bugs jiġu identifikati u ffissati. Il-proċedura għad-debugging hija msaħħa. Jekk test partikolari jfalli, huwa sempliċi li jiġi ddeterminat b'mod preċiż dak li mhux qed jaħdem kif ippjanat. U filwaqt li l-iżvilupp immexxi mit-test u l-ittestjar tal-unità, b'mod partikolari, jidhru aktar ikkumplikati, li jinfluwenzaw il-ġdid pjattaformi ta' awtomazzjoni tat-test u l-aħjar prattiki jistgħu jissimplifikaw u awtomat b'mod sinifikanti l-proċess kollu.
X'inhu Unit testing?
L-ittestjar tal-unità huwa wieħed mill-metodi ta 'ttestjar awtomatizzat. It-testijiet tal-unità jeżerċitaw porzjonijiet żgħar ta' applikazzjoni f'iżolament totali u jqabblu l-imġieba attwali tagħhom mal-imġiba maħsuba. Il-frażi "iżolament sħiħ" tirreferi għall-fatt li l-applikazzjonijiet angolari tal-ittestjar tal-unità mhumiex marbuta ma 'dipendenzi esterni bħal databases, is-sistema tal-fajls, jew servizzi HTTP. Dan jippermetti li t-testijiet tal-unità jkunu aktar affidabbli u rapidi peress li ma jibqgħux ifallu minħabba diffikultajiet mas-servizzi esterni.
It-testijiet tal-unità huma prodotti bl-użu tal-kodiċi. Tista' taħseb li t-testijiet tal-unità huma programmi żgħar li jeżerċitaw l-applikazzjoni tiegħek billi jinteraġixxu ma' sezzjonijiet żgħar. Kull test unitarju huwa simili li jiddeskrivi jew juri kif unità topera f'ċirkustanza partikolari. Billi jagħmlu s-sett ta' testijiet, l-iżviluppaturi jistgħu jiksbu feedback istantanju wara li jimmodifikaw codebase.
Għaliex għandek tagħmel ittestjar ta 'unità angolari?
Tipikament, l-iżviluppaturi jibnu testijiet ta 'unità l-ewwel, segwiti mill-kodiċi tal-programm attwali. L-iżvilupp immexxi mit-test jiddeskrivi din il-metodoloġija (TDD). F'TDD, ir-rekwiżiti huma kkonvertiti f'każijiet ta 'test partikolari, u l-programm huwa sussegwentement imsaħħaħ biex jgħaddi mit-testijiet angolari l-ġodda. It-testijiet tal-unità jħallu t-tibdil tal-kodiċi mingħajr ma jaffettwaw il-funzjonament ta 'unitajiet oħra jew il-programm kollu kemm hu. Dan jiffranka r-riżorsi billi jagħmilha aktar sempliċi għall-iżviluppaturi biex jidentifikaw il-ħsarat f'dan l-istadju.
Barra minn hekk, ġewwa ambjenti tat-test unitarju, il-moduli ta' prodott isiru segregati minn xulxin u għandhom il-qasam tar-responsabbiltà tagħhom. F'din iċ-ċirkustanza, l-ittestjar huwa aktar affidabbli peress li jsiru f'ambjent ristrett. Minħabba din l-istabbiltà, il-kodiċi isir affidabbli wkoll.
Flimkien mal-fatti msemmija hawn fuq, ejja neżaminaw il-ħafna vantaġġi tal-ittestjar tal-unità.
- It-testijiet tal-unità jgħinu biex jinstabu u jsolvu kwistjonijiet aktar kmieni. Organizzazzjonijiet li jimplimentaw l-ittestjar tal-unità fil-proċess ta 'żvilupp tagħhom u jibdew l-ittestjar kemm jista' jkun kmieni fil-ħajja tas-softwer jistgħu jsibu u jiffissaw il-problemi aktar malajr.
- Il-suite tat-test tal-unità tiegħek iservi bħala xibka ta' sikurezza għall-iżviluppaturi. Sett bir-reqqa ta' testijiet unitarji jista' jservi bħala xibka ta' sikurezza għall-iżviluppaturi. Billi jwettqu t-testijiet perjodikament, jistgħu jiżguraw li l-alterazzjonijiet riċenti tagħhom fil-kodiċi ma għamlu ħsara xejn. Fi kliem ieħor, it-testijiet tal-unità jgħinu biex jiġu evitati r-rigressjonijiet.
- It-testijiet unitarji jistgħu jgħinu biex itejbu l-kwalità tal-kodiċi. Dan il-punt isegwi b'mod naturali mill-artikolu preċedenti. Minħabba li t-testijiet tal-unità jservu bħala xibka ta 'sikurezza, l-iżviluppaturi huma aktar kunfidenti meta jimmodifikaw il-kodiċi. Jistgħu jirristrutturaw il-kodiċi mingħajr ma joqogħdu jinkwetaw li jiksru xejn, u jtejbu l-kwalità ġenerali tal-codebase.
- L-ittestjar tal-unità jista 'jgħin biex tittejjeb l-arkitettura tal-applikazzjoni. Iż-żieda ta' testijiet ta' unità ma' codebase spiss tindika disinn ta' applikazzjoni ta' kwalità għolja. Għalhekk, il-ħtieġa li jiġi prodott kodiċi li jista 'jittestja jista' jimmotiva disinn imtejjeb. Dan huwa għaliex TDD (test-driven development) huwa daqshekk effiċjenti.
- It-testijiet tal-unità jistgħu jiġu utilizzati bħala dokumentazzjoni. It-testijiet unitarji jipprovdu eżempji ta' kif tuża l-kodiċi li qed jiġi ttestjat. Konsegwentement, tista 'wkoll taħseb minnhom bħala dokumentazzjoni jew specs eżekutibbli.
- Identifika l-irwejjaħ tal-kodiċi fil-codebase tiegħek. Li jkollok diffikultà biex tiġġenera testijiet ta 'unità għal biċċa partikolari ta' kodiċi tindika irwejjaħ ta 'kodiċi, bħal rutini kkumplikati wisq. Jekk is-sempliċità li biha t-testijiet tal-unità jistgħu jiġu miżjuda ma 'codebase hija indikatur pożittiv, il-maqlub huwa veru wkoll.
Kif Twettaq Ittestjar tal-Unità f'Komponenti Angolari u Test Angolari
Meta tfassal testijiet għall-komponenti, kun żgur li dawn l-imgieba kollha jiġu kkunsidrati.
- Fl-istruttura HTML DOM, jistgħu jirrendu mudelli.
- Jistgħu jirċievu data mill-komponenti prinċipali tagħhom permezz ta 'Inputs u data ta' output permezz ta 'Outputs.
- Jistgħu jirrispondu għal diversi tipi ta 'sitwazzjonijiet.
- Jistgħu jikkomunikaw ma 'bejjiegħa bl-imnut jew servizzi.
- Jistgħu jorbtu data u jagħmluha editjabbli għall-utent.
Twaqqaf TestBed
Angular joffri TestBed għall-ittestjar, li jistabbilixxi ambjent fejn il-komponenti u s-servizzi jistgħu jiġu vvalidati u verifikati faċilment. Huwa bħal modulu Angolari standard, u l-karatteristiċi kollha ddikjarati huma kkompilati. Uża l-metodu beforeEach biex tevita li tidduplika l-kodiċi f'kull test.
Ittestjar tad-DOM
Ħafna mill-ħin, il-funzjonijiet tal-komponenti jimplimentaw loġika li tirrifletti l-mudell. Billi tuża l-query u l-metodi queryAll ta' DebugElement, nistgħu niksbu aċċess għas-siġra DOM:
- il-mistoqsija tirritorna l-ewwel element li jaqbel għal kriterju.
- queryAll jirritorna firxa ta' entrati mqabbla
Triggering event handlers
Hemm żewġ għażliet għat-testijiet. L-ewwel għażla hija li tesegwixxi l-funzjoni direttament, filwaqt li t-tieni għażla, li hija rakkomandata, hija li timplimenta klikk fuq dik il-buttuna. L-użu tal-propjetà tal-manipuler tal-avvenimenti trigger ta 'DebugElement jagħmilha sempliċi biex tagħmel dan. Fiha żewġ argumenti: l-isem tal-avveniment u l-karatteristiċi tiegħu.
Għodda għall-ittestjar tal-unità angolari
Ġiżimin: Il-qafas tal-ittestjar Jasmine jista' jintuża biex jittestja l-kodiċi JavaScript. Speċifikament, huwa qafas għal BDD (Behavior-Driven Development). Minħabba s-sintassi sempliċi tagħha u l-fatt li m'għandux bżonn DOM jew tiddependi fuq oqfsa oħra, Jasmine huwa faċli biex tużah dritt barra mill-kaxxa. Jasmine huwa l-qafas tal-ittestjar default li jirrakkomanda l-manwal Angular. L-Angular CLI awtomatikament tikkonfigura Jasmine, għalhekk m'għandekx bżonn tinstallah individwalment.
Karma: Il-qafas tat-test default ta 'Angular huwa Karma. It-tim ta 'AngularJs żviluppaha minħabba li kellhom diffikultà fiha Ittestjar angolari billi tuża l-għodod disponibbli dak iż-żmien. Karma jippermettilek tittestja l-apps tiegħek fuq web browsers u apparati attwali, bħal tablets u mowbajls. Huwa wkoll adattabbli ħafna peress li huwa kompatibbli ma 'oqfsa ta' ttestjar oħra. Il-qafas default ta 'Angular huwa Jasmine (li niddiskutuh f'mument), imma tista' tibdelha ma' Mocha, QUnit, jew oħrajn. Barra minn hekk, l-integrazzjoni ma 'sistemi ta' integrazzjoni kontinwa bħal Travis, Jenkins, CircleCI, u Semaphore hija sempliċi.
Protractor: Protractor huwa strument ta 'ttestjar minn tarf sa tarf għal apps Angular. Tesegwixxi t-testijiet tiegħek fi browser reali u tirreplika l-interazzjoni tal-utent mal-applikazzjoni tiegħek.
CLI angolari: L-Angular CLI (Command Line Interface) hija għodda li tista 'tintuża biex tibni, tiżviluppa u tittestja applikazzjonijiet Angolari.
Ittestjar tal-Unità Angolari Aħjar Prassi
Hawn huma xi affarijiet li għandek issegwi waqt li twettaq l-ittestjar tal-unità angolari:
- It-testijiet għandhom ikunu rapidi u sempliċi, u jeħtieġ li l-każijiet tat-test jiġu esegwiti aktar malajr peress li dan jissodisfa l-għan tal-ittestjar tal-unità. Jekk il-każijiet tat-test angolari huma wisq kajman, l-iżviluppaturi mhux se jimplimentawhom spiss daqs kemm għandhom—barra minn hekk, aktar ma jkunu sempliċi l-każijiet tat-test tal-unità, iktar ikunu preċiżi s-sejbiet tat-test.
- Il-każijiet tat-test m'għandhomx jirrepetu l-loġika tal-implimentazzjoni.
- Is-sejbiet tat-test la jkunu prevedibbli u lanqas preċiżi mingħajr espożizzjoni għal settings ta 'produzzjoni naturali (apparat reali, li jaħdem). L-imġiba tal-każijiet tat-test għandha tkun deterministika sakemm il-kodiċi tagħhom jibqa' kostanti. Biex it-testijiet jibqgħu deterministiċi, il-persunal tal-assigurazzjoni tal-kwalità għandu jwettaqhom fuq browsers u tagħmir attwali, mhux emulaturi u simulaturi.
- Esegwi b'mod konsistenti testijiet tal-unità f'ambjent sandboxed, billi tneħħi kwalunkwe dipendenza esterna.
- Uża spiji mill-qafas Jasmine waqt li tittestja d-dipendenzi tas-servizz.
- Meta jiġu ttestjati l-komponenti, huwa preferibbli li wieħed jaċċessa d-DOM billi juża debugElement (li jipprovdi astrazzjoni għall-ambjent tar-runtime primarju) aktar milli l-element nattiv.
- Jekk l-app tiegħek tinsab fuq server, uża By.css minflok queryselector peress li dan tal-aħħar huwa biss għall-brawżer.
- Kun żgur li mill-inqas 80 fil-mija tal-kodiċi huwa kopert.
- Implimenta skema ta' ismijiet effiċjenti għall-każijiet tat-test
konklużjoni
L-ittestjar tal-unità huwa forma meħtieġa ta 'ttestjar awtomatizzat; xi esperti saħansitra jargumentaw li huwa l-aktar vitali. Dan ifisser il-lingwi u l-pjattaformi kollha tal-ipprogrammar, inkluż JavaScript. Kemm jekk qed tuża JavaScript fil-backend, qafas front-end, jew tikteb JavaScript vanilla, l-ittestjar tal-unità huwa meħtieġ.
Hemm diversi għodod disponibbli għal kull tip ta 'ttestjar. Agħżel gadget, bħal HeadSpin, li jipprovdi l-aktar vantaġġi u jilħaq il-baġit tiegħek għal kull tip ta 'ttestjar.